hs-ix-0.2.0.0: Indexed applicative functors and monads
Safe HaskellNone
LanguageHaskell2010

Control.Comonad.Indexed.Trans.Costate

Description

The indexed costate (also called "store") transfomer: each CostateT f i j term has a value of type i, and wants within f a value of type j.

Documentation

data CostateT f i j a Source #

Constructors

CostateT (f (j -> a)) i 

Instances

Instances details
Comonad ɯ => Cobind (CostateT ɯ :: Type -> Type -> Type -> Type) Source # 
Instance details

Defined in Control.Comonad.Indexed.Trans.Costate

Methods

cut :: forall (i :: k) (k :: k) a (j :: k). CostateT ɯ i k a -> CostateT ɯ i j (CostateT ɯ j k a) Source #

(<<=) :: forall (j :: k) (k :: k) a b (i :: k). (CostateT ɯ j k a -> b) -> CostateT ɯ i k a -> CostateT ɯ i j b Source #

Applicative p => Apply (CostateT p :: Type -> Type -> Type -> Type) Source # 
Instance details

Defined in Control.Comonad.Indexed.Trans.Costate

Methods

(<*>) :: forall (i :: k) (j :: k) a b (k :: k). CostateT p i j (a -> b) -> CostateT p j k a -> CostateT p i k b Source #

(*>) :: forall (i :: k) (j :: k) a (k :: k) b. CostateT p i j a -> CostateT p j k b -> CostateT p i k b Source #

(<*) :: forall (i :: k) (j :: k) a (k :: k) b. CostateT p i j a -> CostateT p j k b -> CostateT p i k a Source #

liftA2 :: forall a b c (i :: k) (j :: k) (k :: k). (a -> b -> c) -> CostateT p i j a -> CostateT p j k b -> CostateT p i k c Source #

Functor f => Functor (CostateT f i j) Source # 
Instance details

Defined in Control.Comonad.Indexed.Trans.Costate

Methods

fmap :: (a -> b) -> CostateT f i j a -> CostateT f i j b #

(<$) :: a -> CostateT f i j b -> CostateT f i j a #

Comonad ɯ => Comonad (CostateT ɯ k k) Source # 
Instance details

Defined in Control.Comonad.Indexed.Trans.Costate

Methods

copure :: CostateT ɯ k k a -> a #

cut :: CostateT ɯ k k a -> CostateT ɯ k k (CostateT ɯ k k a) #

(<<=) :: (CostateT ɯ k k a -> b) -> CostateT ɯ k k a -> CostateT ɯ k k b #

colift :: Functor f => CostateT f k k a -> f a Source #

lens :: Functor φ => ((f (j -> a), i) -> φ (g (v -> b), u)) -> CostateT f i j a -> φ (CostateT g u v b) Source #