Proposal: add replay function to Control.Monad.Cont.Class
Tom Ellis
tom-lists-haskell-cafe-2017 at jaguarpaw.co.uk
Sun Mar 7 09:25:18 UTC 2021
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?
More information about the Libraries
mailing list