extensible-effects-1.9.1.0: An Alternative to Monad Transformers

Safe HaskellTrustworthy
LanguageHaskell2010

Control.Eff.Operational.Example

Synopsis

Documentation

data Jail a where Source

Define data using GADTs.

Constructors

Print :: String -> Jail () 
Scan :: Jail String 

Instances

Typeable (* -> *) Jail 

prog :: Member (Program Jail) r => Eff r () Source

adventIO :: (Member (Lift IO) r, SetMember Lift (Lift IO) r) => Jail a -> Eff r a Source

Then, implements interpreters from the data to effects.