It’s hard for me to say without knowing what “the recursion wasn’t working” means. If you are referring to the error the compiler emits when it complain about an undefined references in recursive binding groups, then there is no internal change that would affect that, since it’s a local syntactic check over the binding group.
My opinion is that when you get such an error, you shouldn’t fool with manual fix points or fix. Rather you should put every binding in the recursive binding group behind defer \_ ->. The manual fix point is useful for teaching you how to manually construct such a group, but it’s completely unnecessary. Likewise, fix just introduces another name for no apparent gain, and only works for a single binding. It can reference other bindings in the group for the same reason defer can, so just use defer always.
Yeah I don’t remember why the “the recursion wasn’t working” lol.
I was hoping you were going to say something like “After the CPS refactor recursion just works because something something is lazy and…” but you didn’t.
Thanks for the advice about defer. I would like to put that advice on the parsing README as soon as I understand it well enough.