Memory

mimas is garbage collected. Memory is managed for you by a collector built on gc-arena — there is no manual allocation, no free, no pointers, and no lifetimes to thread through your code. You create values and use them; the runtime reclaims what you no longer reach.

This is a deliberate part of mimas’s ethos: pair a forgiving runtime with a strict-but-helpful compiler. The static analysis mimas does is spent on correctness — types, exhaustiveness, null-safety — not on bookkeeping who owns what. The goal is a language that feels like scripting to write while still catching real mistakes before you run.

Where the heavy lifting belongs

If a piece of your project genuinely needs ownership, lifetimes, or manual control over memory, that’s a strong sign it belongs on the Rust side of the boundary. mimas is the flexible scripting layer; Rust remains the place for the parts that demand that rigor. See Extension with Rust.