Skip to content

Instantly share code, notes, and snippets.

@deque-blog

deque-blog/runPipe.idr

Last active Nov 9, 2017
Embed
What would you like to do?
runPipe : (Monad m) => Effect m r -> m r
runPipe (Pure r) = pure r -- Done executing the pipe, return the result
runPipe (Action a) = a >>= \p => runPipe p -- Execute the action, run the next of the pipe
runPipe (Yield next b) = absurd b -- Absurd
runPipe (Await cont) = runPipe $ Await (either absurd absurd) -- Absurd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment