Imagine if Java and C had a love child, basically.
MIR is a fantastic piece of engineering.
Honestly the hardest part is representing types. Having played around with other compilers it seems to be a typical problem.
I’m stuck in the minutiae of representing highly structured complexity and defining behavior in c. I can understand why many languages have an intermediate compiler - it’s too much work and it will probably change over time.