Module
Control.Comonad.Trans.Class
- Package
- transformers
- Repository
- purescript/purescript-transformers
This module defines the ComonadTrans
type class of comonad transformers.
#ComonadTrans Source
class ComonadTrans :: ((Type -> Type) -> Type -> Type) -> Constraint
class ComonadTrans f where
The ComonadTrans
type class represents comonad transformers.
A comonad transformer is a type constructor of kind (* -> *) -> * -> *
, which
takes a Comonad
as its first argument, and returns another Comonad
.
This allows us to extend a comonad to provide additional context. By iterating this process, we create comonad transformer stacks, which contain all of the contextual information required for a particular computation.
The laws state that lower
is a Comonad
morphism.
Laws:
extract (lower a) = extract a
lower (extend w (f <<< lower)) = extend (lower w) f
Members
- Modules
- Control.
Comonad. Env - Control.
Comonad. Env. Class - Control.
Comonad. Env. Trans - Control.
Comonad. Store - Control.
Comonad. Store. Class - Control.
Comonad. Store. Trans - Control.
Comonad. Traced - Control.
Comonad. Traced. Class - Control.
Comonad. Traced. Trans - Control.
Comonad. Trans. Class - Control.
Monad. Cont - Control.
Monad. Cont. Class - Control.
Monad. Cont. Trans - Control.
Monad. Error. Class - Control.
Monad. Except - Control.
Monad. Except. Trans - Control.
Monad. Identity. Trans - Control.
Monad. List. Trans - Control.
Monad. Maybe. Trans - Control.
Monad. RWS - Control.
Monad. RWS. Trans - Control.
Monad. Reader - Control.
Monad. Reader. Class - Control.
Monad. Reader. Trans - Control.
Monad. State - Control.
Monad. State. Class - Control.
Monad. State. Trans - Control.
Monad. Trans. Class - Control.
Monad. Writer - Control.
Monad. Writer. Class - Control.
Monad. Writer. Trans