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  

Monoid m => ComonadTrans (TracedT m)  
Monoid m => ComonadHoist (TracedT m)  
Functor w => Functor (TracedT m w)  
(Comonad w, Monoid m) => Comonad (TracedT m w)  
(Monoid m, FunctorApply w) => FunctorApply (TracedT m w)  
(Monoid m, ComonadApply w) => ComonadApply (TracedT m w) 