From the goals and bits of code, this looks a lot like Zig. What about Mun makes it distinct from Zig and the other little imperative LLVM languages that have been coming out recently (Zig, V, and a couple others come to mind)?
Mun is primarily focused on hotloading, the ability to change your code while its running. Our goal is to enable hotloading of all constructs including structs (similar to how Lua works) and without having to annotate anything.
So, why do we need yet another language to reap hot-reloading, instead of adding it to say Rust, Zig or (blow me) Jai? Is there something about those languages that complicates hot-reloading?
Jai is actually closed source, so that was not an option.
But in general there are no predefined best practices for achieving hot reloading of both functions and data. Experimenting with those while also fighting with complex compilers makes the problem space exponentially more intractable.