Safe Haskell | None |
---|---|
Language | Haskell2010 |
An encoding for algebraic effects, based on the freer
monad.
Effectful program
A program that returns a value of type a
and can call operations that belong to some effect
e
in signature es
; this represents a syntax tree whose nodes are operations and leaves are pure values.
data EffectSum (es :: [* -> *]) (x :: *) :: * Source #
An open sum for an effect signature es
, containing an operation e x
where e
is in es
class FindElem e es => Member (e :: * -> *) (es :: [* -> *]) where Source #
Membership of an effect e
in es