It compiled again. The escape bug is mostly gone (it still appears in the output sometime, I need to recompile the pretty-printer), but it recognizes fine. See what's up with the rest. I might skip all semantic checks -Hi source code doesn't need type information and compiles fine without it,- just to get to a bootstrap.
It halts again after the semantic analysis and before emitting/serializing the AST. Not sure what's up with that. Checked it on a small file, the heap grows to 1 GB, pretty sure it just goes into some infinite loop. (Traced it, confirmed. It's an arity bug, it derived somewhere something of arity 2 has arity 1, so, it infinitely expands something which should have given a closure constant.)
It's a semantic bug in the compiler which should have been caught by the type checker.
(I patched the runtime bug. At least, I hope so. Recompiling again. The good news is that the type checker needed an overhaul anyway, there don't seem to be any big bugs, so self-compilation should be feasible. All in all, getting there.)