I suspect that the MIR idea could (should?) become a pretty common concept for a large number of LLVM-based languages. the LLVM IR is very low-level, and in most modern languages there&#x27;s a big gap between the programmer-friendly features they have and &quot;the bare essentials that still capture the same ideas&quot;.<p>I also suspect that the act of designing a MIR for a language is a fun one, should be pretty damn enlightening. It really forces you to focus on what&#x27;s &quot;core&quot; about the language.<p>In my own, limited, experience with language design and compilers, I&#x27;ve found that doing something like a MIR greatly simplifies other parts. Code written in MIR (in my case, it didn&#x27;t even have a concrete syntax, just an abstract syntax tree) is full of duplication and is ridiculously explicit, but it&#x27;s super easy to process in all kinds of ways.<p>Just plainly guessing, but based on this blog post, if I&#x27;d write a Rust interpreter, I&#x27;d probably run it on MIR and not on plain Rust or LLVM IR.