ixmonad-0.50: Embeds effect systems into Haskell using an parameteric effect monad (the |Effect| type class)

Safe HaskellNone
LanguageHaskell98

Control.Effect.Update

Documentation

data Eff w where Source

Constructors

Put :: a -> Eff (Just a) 
NoPut :: Eff Nothing 

data Update w a Source

Constructors

Update 

Fields

runUpdate :: (a, Eff w)
 

Instances

Effect (Maybe *) Update 
type Unit (Maybe *) Update = Nothing * 
type Inv (Maybe *) Update s t = () 
type Plus (Maybe *) Update s (Nothing *) = s 
type Plus (Maybe *) Update s (Just * t) = Just * t 

update :: Eff s -> (b, Eff t) -> (b, Eff (Plus Update s t)) Source

put :: a -> Update (Just a) () Source