Portability  portable 

Stability  provisional 
Maintainer  Edward Kmett <ekmett@gmail.com> 
The trace comonad transformer (aka the cowriter or exponential comonad transformer).
 type Traced m = TracedT m Identity
 traced :: (m > a) > Traced m a
 runTraced :: Monoid m => Traced m a > m > a
 newtype TracedT m w a = TracedT {
 runTracedT :: w (m > a)
 trace :: (Comonad w, Monoid m) => 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
TracedT  

(Semigroup m, Monoid m) => ComonadTrans (TracedT m)  
(Semigroup m, Monoid m) => ComonadHoist (TracedT m)  
Functor w => Functor (TracedT m w)  
(Typeable s, Typeable1 w) => Typeable1 (TracedT s w)  
(Comonad w, Semigroup m, Monoid m) => Comonad (TracedT m w)  
(Extend w, Semigroup m) => Extend (TracedT m w)  
(ComonadApply w, Semigroup m, Monoid m) => ComonadApply (TracedT m w)  
(Apply w, Semigroup m, Monoid m) => Apply (TracedT m w) 