This is a cofree comonad of some functor f, with a comonad w threaded through it at each level.
Constructors
CofreeTrunCofreeT :: w (CofreeF f a (CofreeT f w a))
Instances17ComonadEnv, ComonadCofree, MonadTrans, ComonadTrans, ComonadHoist, Monad, …
(Functor f, ComonadEnv e w) => ComonadEnv e (CofreeT f w)Defined in free-5.2 · Control.Comonad.Trans.Cofree(Functor f, Comonad w) => ComonadCofree f (CofreeT f w)Defined in free-5.2 · Control.Comonad.Trans.CofreeAlternative f => MonadTrans (CofreeT f)Defined in free-5.2 · Control.Comonad.Trans.CofreeComonadTrans (CofreeT f)Defined in free-5.2 · Control.Comonad.Trans.CofreeFunctor f => ComonadHoist (CofreeT f)Defined in free-5.2 · Control.Comonad.Trans.Cofree(Alternative f, Monad w) => Monad (CofreeT f w)Defined in free-5.2 · Control.Comonad.Trans.Cofree(Functor f, Functor w) => Functor (CofreeT f w)Defined in free-5.2 · Control.Comonad.Trans.Cofree(Alternative f, Applicative w) => Applicative (CofreeT f w)Defined in free-5.2 · Control.Comonad.Trans.Cofree(Foldable f, Foldable w) => Foldable (CofreeT f w)Defined in free-5.2 · Control.Comonad.Trans.Cofree(Traversable f, Traversable w) => Traversable (CofreeT f w)Defined in free-5.2 · Control.Comonad.Trans.Cofree(Alternative f, MonadZip f, MonadZip m) => MonadZip (CofreeT f m)Defined in free-5.2 · Control.Comonad.Trans.Cofree(Functor f, Comonad w) => Comonad (CofreeT f w)Defined in free-5.2 · Control.Comonad.Trans.CofreeEq (w (CofreeF f a (CofreeT f w a))) => Eq (CofreeT f w a)Defined in free-5.2 · Control.Comonad.Trans.Cofree(Typeable f, Typeable w, Data (w (CofreeF f a (CofreeT f w a))), Data a) => Data (CofreeT f w a)Defined in free-5.2 · Control.Comonad.Trans.CofreeOrd (w (CofreeF f a (CofreeT f w a))) => Ord (CofreeT f w a)Defined in free-5.2 · Control.Comonad.Trans.CofreeRead (w (CofreeF f a (CofreeT f w a))) => Read (CofreeT f w a)Defined in free-5.2 · Control.Comonad.Trans.CofreeShow (w (CofreeF f a (CofreeT f w a))) => Show (CofreeT f w a)Defined in free-5.2 · Control.Comonad.Trans.Cofree