Control.Comonad.Hoist.Class

comonad-5.0.8: Comonads

Copyright | (C) 2008-2013 Edward Kmett
License | BSD-style (see the file LICENSE)
Maintainer | Edward Kmett <ekmett@gmail.com>
Stability | provisional
Portability | portable
Safe Haskell | Safe
Language | Haskell2010

Control.Comonad.Hoist.Class

Description

# Documentation

class ComonadHoist (t :: (Type -> Type) -> Type -> Type) where #

Methods

cohoist :: (Comonad w, Comonad v) => (forall x. w x -> v x) -> t w a -> t v a #

Given any comonad-homomorphism from `w` to `v` this yields a comonad homomorphism from `t w` to `t v`.

#### Instances

Instances details

ComonadHoist (EnvT e) # |
Instance details Defined in Control.Comonad.Trans.Env Methods cohoist :: (Comonad w, Comonad v) => (forall x. w x -> v x) -> EnvT e w a -> EnvT e v a #
ComonadHoist (StoreT s) # |
Instance details Defined in Control.Comonad.Trans.Store Methods cohoist :: (Comonad w, Comonad v) => (forall x. w x -> v x) -> StoreT s w a -> StoreT s v a #
ComonadHoist (TracedT m) # |
Instance details Defined in Control.Comonad.Trans.Traced Methods cohoist :: (Comonad w, Comonad v) => (forall x. w x -> v x) -> TracedT m w a -> TracedT m v a #
ComonadHoist (IdentityT :: (Type -> Type) -> Type -> Type) # |
Instance details Defined in Control.Comonad.Hoist.Class Methods cohoist :: (Comonad w, Comonad v) => (forall x. w x -> v x) -> IdentityT w a -> IdentityT v a #