[Haskell-cafe] Re: Control.Monad.Cont fun
Magnus Carlsson
magnus at carlssonia.org
Fri Jul 15 17:51:59 EDT 2005
Hi Thomas and Tomasz,
A late comment about a MonadFix instance for Cont/ContT:
Thomas Jäger wrote:
> Hello Tomasz,
>
> This stuff is very interesting! At first sight, your definition of
> getCC seems quite odd, but it can in fact be derived from its
> implementation in an untyped language.
>
> On 7/7/05, Tomasz Zielonka <tomasz.zielonka at gmail.com> wrote:
>
...
>>Besides sharing my happiness, I want to ask some questions:
>>
>>- is it possible to define a MonadFix instance for Cont / ContT?
>
> It must be possible to define something that looks like a MonadFix
> instance, after all you can define generally recursive functions in
> languages like scheme and sml which "live in a ContT r IO monad", but
> this has all kinds of nasty consequences, iirc.
>
> Levent Erkök's thesis suggests (pp. 66) that there's no implementation
> of mfix that satisfies the purity law.
> http://www.cse.ogi.edu/PacSoft/projects/rmb/erkok-thesis.pdf
A while ago, I attempted to marry value recursion a la Levent Erkök with
the continuation-monad transformer. It seems possible if the underlying
monad has value recursion and references. Interestingly, all mfix
properties except left shrinking appear to be valid.
There are slides about this (including implementation) at
http://www.cse.ogi.edu/~magnus/mdo-callcc-slides.pdf
There is also a draft paper at
http://www.cse.ogi.edu/~magnus/mdo-callcc.pdf
I should warn that the paper is still very unfinished. If anyone is
interested in picking up the pieces together with me, please get in touch!
Cheers,
Magnus
More information about the Haskell-Cafe
mailing list