Module

Data.Functor.Pairing.Co

Monads from comonads, based on https://hackage.haskell.org/package/kan-extensions-5.0.1/docs/Control-Monad-Co.html.

#Co

newtype Co w a

Instances

#co

co :: forall w a. (forall r. w (a -> r) -> r) -> Co w a

#runCo

runCo :: forall w a r. Co w a -> w (a -> r) -> r

#pairCo

pairCo :: forall w. Functor w => w  (Co w)

w pairs with Co w whenever w is a Functor.

#liftCo

liftCo :: forall w s. Comonad w => (forall a. w a -> s) -> Co w s

#lowerCo

lowerCo :: forall w a s. Functor w => Co w s -> w a -> s

Modules