-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Haskell 98 monads for free -- -- Haskell 98 monads for free @package free @version 0.2.3 -- | Haskell 98 cofree comonads module Control.Comonad.Cofree data Cofree f a (:<) :: a -> f (Cofree f a) -> Cofree f a -- | lower . section = id section :: Comonad f => f a -> Cofree f a outCofree :: Cofree f a -> f (Cofree f a) coiter :: Functor f => (a -> f a) -> a -> Cofree f a unfold :: Functor f => (b -> (a, f b)) -> b -> Cofree f a instance (Typeable1 f, Data (f (Cofree f a)), Data a) => Data (Cofree f a) instance (Typeable1 f, Typeable a) => Typeable (Cofree f a) instance Typeable1 f => Typeable1 (Cofree f) instance Traversable1 f => Traversable1 (Cofree f) instance Traversable f => Traversable (Cofree f) instance Foldable1 f => Foldable1 (Cofree f) instance Foldable f => Foldable (Cofree f) instance (Ord (f (Cofree f a)), Ord a) => Ord (Cofree f a) instance (Eq (f (Cofree f a)), Eq a) => Eq (Cofree f a) instance (Read (f (Cofree f a)), Read a) => Read (Cofree f a) instance (Show (f (Cofree f a)), Show a) => Show (Cofree f a) instance Applicative f => Applicative (Cofree f) instance Apply f => Apply (Cofree f) instance ComonadTrans Cofree instance Functor f => Comonad (Cofree f) instance Functor f => Extend (Cofree f) instance Functor f => Functor (Cofree f) instance Distributive f => Distributive (Cofree f) -- | Haskell 98 free monads module Control.Monad.Free data Free f a Pure :: a -> Free f a Free :: (f (Free f a)) -> Free f a -- | retract . lift = id retract :: Monad f => Free f a -> f a iter :: Functor f => (f a -> a) -> Free f a -> a instance Traversable1 f => Traversable1 (Free f) instance Traversable f => Traversable (Free f) instance Foldable1 f => Foldable1 (Free f) instance Foldable f => Foldable (Free f) instance MonadTrans Free instance (Functor v, MonadPlus v) => MonadPlus (Free v) instance Alternative v => Alternative (Free v) instance Functor f => Monad (Free f) instance Functor f => Bind (Free f) instance Functor f => Applicative (Free f) instance Functor f => Apply (Free f) instance Functor f => Functor (Free f) instance (Read (f (Free f a)), Read a) => Read (Free f a) instance (Show (f (Free f a)), Show a) => Show (Free f a) instance (Ord (f (Free f a)), Ord a) => Ord (Free f a) instance (Eq (f (Free f a)), Eq a) => Eq (Free f a)