Copyright  (C) 20082014 Edward Kmett 

License  BSDstyle (see the file LICENSE) 
Maintainer  Edward Kmett <ekmett@gmail.com> 
Stability  provisional 
Portability  portable 
Safe Haskell  Safe 
Language  Haskell2010 
The trace comonad builds up a result by prepending monoidal values to each other.
This module specifies the traced comonad transformer (aka the cowriter or exponential comonad transformer).
 type Traced m = TracedT m Identity
 traced :: (m > a) > Traced m a
 runTraced :: Traced m a > m > a
 newtype TracedT m w a = TracedT {
 runTracedT :: w (m > a)
 trace :: Comonad w => m > TracedT m w a > a
 listen :: Functor w => TracedT m w a > TracedT m w (a, m)
 listens :: Functor w => (m > b) > TracedT m w a > TracedT m w (a, b)
 censor :: Functor w => (m > m) > TracedT m w a > TracedT m w a
Traced comonad
Traced comonad transformer
newtype TracedT m w a Source #
TracedT  

(Comonad w, Monoid m) => ComonadTraced m (TracedT m w) Source #  
(ComonadStore s w, Monoid m) => ComonadStore s (TracedT m w) Source #  
(ComonadEnv e w, Monoid m) => ComonadEnv e (TracedT m w) Source #  
ComonadHoist (TracedT m) Source #  
Monoid m => ComonadTrans (TracedT m) Source #  
Functor w => Functor (TracedT m w) Source #  
Applicative w => Applicative (TracedT m w) Source #  
Distributive w => Distributive (TracedT m w) Source #  
(ComonadApply w, Monoid m) => ComonadApply (TracedT m w) Source #  
(Comonad w, Monoid m) => Comonad (TracedT m w) Source #  