comonad-5.0.8: Comonads
Copyright(C) 2008-2014 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityexperimental
Portabilitynon-portable (fundeps, MPTCs)
Safe HaskellSafe
LanguageHaskell2010

Control.Comonad.Traced

Description

 
Synopsis

ComonadTraced class

class Comonad w => ComonadTraced m w | w -> m where #

Methods

trace :: m -> w a -> a #

Instances

Instances details
ComonadTraced m w => ComonadTraced m (StoreT s w) # 
Instance details

Defined in Control.Comonad.Traced.Class

Methods

trace :: m -> StoreT s w a -> a #

ComonadTraced m w => ComonadTraced m (EnvT e w) # 
Instance details

Defined in Control.Comonad.Traced.Class

Methods

trace :: m -> EnvT e w a -> a #

ComonadTraced m w => ComonadTraced m (IdentityT w) # 
Instance details

Defined in Control.Comonad.Traced.Class

Methods

trace :: m -> IdentityT w a -> a #

(Comonad w, Monoid m) => ComonadTraced m (TracedT m w) # 
Instance details

Defined in Control.Comonad.Traced.Class

Methods

trace :: m -> TracedT m w a -> a #

Monoid m => ComonadTraced m ((->) m :: Type -> Type) # 
Instance details

Defined in Control.Comonad.Traced.Class

Methods

trace :: m -> (m -> a) -> a #

traces :: ComonadTraced m w => (a -> m) -> w a -> a #

The Traced comonad

traced :: (m -> a) -> Traced m a #

runTraced :: Traced m a -> m -> a #

The TracedT comonad transformer

newtype TracedT m w a #

Constructors

TracedT 

Fields

Instances

Instances details
(Comonad w, Monoid m) => ComonadTraced m (TracedT m w) # 
Instance details

Defined in Control.Comonad.Traced.Class

Methods

trace :: m -> TracedT m w a -> a #

(ComonadStore s w, Monoid m) => ComonadStore s (TracedT m w) # 
Instance details

Defined in Control.Comonad.Store.Class

Methods

pos :: TracedT m w a -> s #

peek :: s -> TracedT m w a -> a #

peeks :: (s -> s) -> TracedT m w a -> a #

seek :: s -> TracedT m w a -> TracedT m w a #

seeks :: (s -> s) -> TracedT m w a -> TracedT m w a #

experiment :: Functor f => (s -> f s) -> TracedT m w a -> f a #

(ComonadEnv e w, Monoid m) => ComonadEnv e (TracedT m w) # 
Instance details

Defined in Control.Comonad.Env.Class

Methods

ask :: TracedT m w a -> e #

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 #

Monoid m => ComonadTrans (TracedT m) # 
Instance details

Defined in Control.Comonad.Trans.Traced

Methods

lower :: Comonad w => TracedT m w a -> w a #

Functor w => Functor (TracedT m w) # 
Instance details

Defined in Control.Comonad.Trans.Traced

Methods

fmap :: (a -> b) -> TracedT m w a -> TracedT m w b #

(<$) :: a -> TracedT m w b -> TracedT m w a #

Applicative w => Applicative (TracedT m w) # 
Instance details

Defined in Control.Comonad.Trans.Traced

Methods

pure :: a -> TracedT m w a #

(<*>) :: TracedT m w (a -> b) -> TracedT m w a -> TracedT m w b #

liftA2 :: (a -> b -> c) -> TracedT m w a -> TracedT m w b -> TracedT m w c #

(*>) :: TracedT m w a -> TracedT m w b -> TracedT m w b #

(<*) :: TracedT m w a -> TracedT m w b -> TracedT m w a #

Distributive w => Distributive (TracedT m w) # 
Instance details

Defined in Control.Comonad.Trans.Traced

Methods

distribute :: Functor f => f (TracedT m w a) -> TracedT m w (f a) #

collect :: Functor f => (a -> TracedT m w b) -> f a -> TracedT m w (f b) #

distributeM :: Monad m0 => m0 (TracedT m w a) -> TracedT m w (m0 a) #

collectM :: Monad m0 => (a -> TracedT m w b) -> m0 a -> TracedT m w (m0 b) #

(ComonadApply w, Monoid m) => ComonadApply (TracedT m w) # 
Instance details

Defined in Control.Comonad.Trans.Traced

Methods

(<@>) :: TracedT m w (a -> b) -> TracedT m w a -> TracedT m w b #

(@>) :: TracedT m w a -> TracedT m w b -> TracedT m w b #

(<@) :: TracedT m w a -> TracedT m w b -> TracedT m w a #

(Comonad w, Monoid m) => Comonad (TracedT m w) # 
Instance details

Defined in Control.Comonad.Trans.Traced

Methods

extract :: TracedT m w a -> a #

duplicate :: TracedT m w a -> TracedT m w (TracedT m w a) #

extend :: (TracedT m w a -> b) -> TracedT m w a -> TracedT m w b #

FunctorWithIndex i w => FunctorWithIndex (s, i) (TracedT s w) # 
Instance details

Defined in Control.Comonad.Trans.Traced

Methods

imap :: ((s, i) -> a -> b) -> TracedT s w a -> TracedT s w b #

Re-exported modules