Portability  portable 

Stability  provisional 
Maintainer  Edward Kmett <ekmett@gmail.com> 
Safe Haskell  None 
The trace 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
TracedT  

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