Mon May 21 16:20:56 EDT 2018

loops/recursion and tagless-final

All examples I've seen are non-recursive.

Using Haskell's built-in recursion doesn't seem to be a good idea.
It's ok for code, but for data it creates infinite data structures.

So what to do.

Add a y combinator to the language?

I'm looking into this for assembly lanugage.  This should be possible
as long as there are no arbitrary jumps, i.e. all jump destinations
are expicitly named locations.  That way the type class implementing
the language can use either the provided jump labels, or link the code.