Just had one of those epiphany moments in #zig as I looked at a problem and realised 'hang on a minute - that thing I read in the docs and didn't fully understand about arena allocators was talking about this, wasn't it?'
The ability to swap out which allocators I'm using is giving me a level of both confidence and practicality I wasn't really expecting in my first venture into manual memory management. I know I'm not always being as efficient as I could theoretically be, but I'm pretty sure there aren't leaks and I'm still using around 40 times less memory than the previous #fsharp version (although that's a little unfair - short run time console app is about the least favourable comparison space for runtime versus fully compiled native code)