Copyright  (c) 2016 Allele Dev; 2017 Ixperta Solutions s.r.o.; 2017 Alexis King 

License  BSD3 
Maintainer  Alexis King <lexi.lambda@gmail.com> 
Stability  experimental 
Portability  GHC specific language extensions. 
Safe Haskell  None 
Language  Haskell2010 
An effect to compose functions with the ability to yield.
Using http://okmij.org/ftp/Haskell/extensible/Eff1.hs as a starting point.
Synopsis
 data Yield a b c = Yield a (b > c)
 yield :: Member ( Yield a b) effs => a > (b > c) > Eff effs c
 data Status effs a b r
 runC :: Eff ( Yield a b ': effs) r > Eff effs ( Status effs a b r)
 interposeC :: Member ( Yield a b) effs => Eff effs r > Eff effs ( Status effs a b r)
 replyC :: Yield a b c > (c > Eff effs ( Status effs a b r)) > Eff effs ( Status effs a b r)
Yield Control
A type representing a yielding of control.
Type variables have following meaning:

a
 The current type.

b
 The input to the continuation function.

c
 The output of the continuation.
Yield a (b > c) 
yield :: Member ( Yield a b) effs => a > (b > c) > Eff effs c Source #
Lifts a value and a function into the Coroutine effect.
Handle Yield Effect
runC :: Eff ( Yield a b ': effs) r > Eff effs ( Status effs a b r) Source #
Launch a coroutine and report its status.