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

Safe HaskellNone
LanguageHaskell98

Control.Coeffect

Documentation

class Coeffect c where Source

Associated Types

type Inv c s t :: Constraint Source

type Unit c :: k Source

type Plus c s t :: k Source

Methods

extract :: c (Unit c) a -> a Source

extend :: Inv c s t => (c t a -> b) -> c (Plus c s t) a -> c s b Source

Instances

class CoeffectZip c where Source

Associated Types

type Meet c s t :: k Source

type CzipInv c s t :: Constraint Source

Methods

czip :: CzipInv c s t => c s a -> c t b -> c (Meet c s t) (a, b) Source

Instances