I&#x27;m not sure I understand the value of having tools to &quot;downgrade&quot; something to a lower level. I compare this &quot;downgrading&quot; with &quot;compiling to C&quot; - a feature that enables some languages to become useful on more than one platform just by riding on the back of the C language. Was it about this idea of having different layers so that one may care to really port only the lowest level when it comes to it? But then the scope you get on the lower levels is simply inferior compared to the one you get on higher level&#x2F;layer in terms of optimization possibilities, partly because you are now forced to get from point A (source code) to point B (binary code) not directly but through a 3rd point - C (a lower level source code), which may hurt performance and other things. Did I misunderstood something?