The author has provided a type operator for sets (and other datatypes) that let's one compute fixpoints of monotone operations like transitive closure on directed graphs
with a minimum of effort. While the implementation uses unsafe primitives, the resulting interface is safe and pure. Quite impressive and hopepully something I can make use of in the future...<p>Btw, regarding the introductory example<p>> fibs = 0 : 1 : zipWith (+) fibs (tail fibs)<p>I prefer the more straightforward<p><pre><code> fibs = f 0 1 where f a b = a : f b (a+b)</code></pre>
The title is wrong, should be `More recursive definitions`.<p>The title simply engages my pedantic self and makes me want to point out that tail recursion == looping and, really, that recursion is looping.