Proposal: add replay function to Control.Monad.Cont.Class

Edward Kmett ekmett at gmail.com
Sun Mar 7 17:16:27 UTC 2021


I rather like label. +1 from me.

On Sun, Mar 7, 2021 at 1:25 AM Tom Ellis <
tom-lists-haskell-cafe-2017 at jaguarpaw.co.uk> wrote:

> On Sun, Mar 07, 2021 at 03:25:16AM +0000, Alexandre Esteves wrote:
> > replay :: MonadCont m => m (m a)
> > replay = callCC $ pure . fix
> >
> > Using this in a do-notation block allows one to bind a name to the
> > sub-block that starts immediately after.
> > I reached for continuations to try to get this behavior for use with
> > recursive flows without disrupting the reading of the main forward flow
> and
> > found how to do it in https://jsdw.me/posts/haskell-cont-monad/ under
> the
> > name "goto".
> >
> > While "goto" is as familiar as a name can be, I feel "replay" more
> > accurately conveys, that you can only 'go back', by stating what actually
> > is happening - that a sub-block we're currently evaluating is replayed
> from
> > its beginning.
>
> Looks like a "label" more than a "goto" to me.  Would "label" be a
> good name?
> _______________________________________________
> Libraries mailing list
> Libraries at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20210307/c078d9e0/attachment.html>


More information about the Libraries mailing list