cons -> cat
laziness and memoization, but wtf is leastFixedPoint