You might be interested to know Scala&#x27;s new compiler dotty takes the phase approach - there are 40-50 phases and logic for fusing phases together to work in one traversal.<p>Check it out - a list of all the phases in the source! <a href="https:&#x2F;&#x2F;github.com&#x2F;lampepfl&#x2F;dotty&#x2F;blob&#x2F;master&#x2F;src&#x2F;dotty&#x2F;tools&#x2F;dotc&#x2F;Compiler.scala#L38" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;lampepfl&#x2F;dotty&#x2F;blob&#x2F;master&#x2F;src&#x2F;dotty&#x2F;tool...</a>