Dylan Thurston wrote: > > The defining equations are: if flst is a value > > of a type |FR a|, then > > unFR flst f z = z if flst represents an empty list > > unFR flst f z = f e (unFR flst' f z) > > if flst represents the list with the head 'e' > > and flst' represents the rest of that list > > Presumably you noticed that this is isomorphic to the representation > of a list in lambda calculus, right?
Sorry I didn't point out the previous discussion and relevant work: http://www.haskell.org/pipermail/haskell-cafe/2005-July/010875.html http://pobox.com/~oleg/ftp/Computation/Continuations.html#cdr-fstream especially the reference therein: Corrado Boehm and Alessandro Berarducci: Automatic Synthesis of Typed Lambda-Programs on Term Algebras _______________________________________________ Haskell mailing list Haskell@haskell.org http://www.haskell.org/mailman/listinfo/haskell