extensible-effects-5.0.0.1: An Alternative to Monad Transformers
Safe HaskellSafe
LanguageHaskell2010

Control.Eff.Operational.Example

Description

Example usage of Control.Eff.Operational.

Synopsis

Documentation

data Jail a where Source #

Define data using GADTs.

Constructors

Print :: String -> Jail () 
Scan :: Jail [Char] 

prog :: forall (r :: [Type -> Type]). Member (Program Jail) r => Eff r () Source #

adventIO :: forall (r :: [Type -> Type]) a. Lifted IO r => Jail a -> Eff r a Source #

Then, implements interpreters from the data to effects.

adventPure :: forall (r :: [Type -> Type]) a. '[Writer String, State [String]] <:: r => Jail a -> Eff r a Source #