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

Safe HaskellNone
LanguageHaskell98

Control.Effect

Documentation

class Effect m where Source

Minimal complete definition

return, (>>=)

Associated Types

type Unit m :: k Source

type Plus m f g :: k Source

type Inv m f g :: Constraint Source

Methods

return :: a -> m (Unit m) a Source

(>>=) :: Inv m f g => m f a -> (a -> m g b) -> m (Plus m f g) b Source

(>>) :: Inv m f g => m f a -> m g b -> m (Plus m f g) b Source

class Subeffect m f g where Source

Methods

sub :: m f a -> m g a Source

Instances

Subset s t => Subeffect [*] Reader s t 
Superset s t => Subeffect [*] Writer s t