free-5.1.4: Monads for free

Copyright(C) 2008-2011 Edward Kmett
LicenseBSD-style (see the file LICENSE)
MaintainerEdward Kmett <ekmett@gmail.com>
Stabilityexperimental
Portabilityfundeps, MPTCs
Safe HaskellSafe
LanguageHaskell2010

Control.Comonad.Cofree.Class

Description

 
Synopsis

Documentation

class (Functor f, Comonad w) => ComonadCofree f w | w -> f where Source #

Allows you to peel a layer off a cofree comonad.

Methods

unwrap :: w a -> f (w a) Source #

Remove a layer.

Instances
ComonadCofree [] Tree Source # 
Instance details

Defined in Control.Comonad.Cofree.Class

Methods

unwrap :: Tree a -> [Tree a] Source #

ComonadCofree Maybe NonEmpty Source # 
Instance details

Defined in Control.Comonad.Cofree.Class

Methods

unwrap :: NonEmpty a -> Maybe (NonEmpty a) Source #

Functor f => ComonadCofree f (Cofree f) Source # 
Instance details

Defined in Control.Comonad.Cofree

Methods

unwrap :: Cofree f a -> f (Cofree f a) Source #

Comonad w => ComonadCofree Identity (CoiterT w) Source # 
Instance details

Defined in Control.Comonad.Trans.Coiter

Methods

unwrap :: CoiterT w a -> Identity (CoiterT w a) Source #

(ComonadCofree f w, Monoid m) => ComonadCofree f (TracedT m w) Source # 
Instance details

Defined in Control.Comonad.Cofree.Class

Methods

unwrap :: TracedT m w a -> f (TracedT m w a) Source #

ComonadCofree f w => ComonadCofree f (StoreT s w) Source # 
Instance details

Defined in Control.Comonad.Cofree.Class

Methods

unwrap :: StoreT s w a -> f (StoreT s w a) Source #

ComonadCofree f w => ComonadCofree f (EnvT e w) Source # 
Instance details

Defined in Control.Comonad.Cofree.Class

Methods

unwrap :: EnvT e w a -> f (EnvT e w a) Source #

ComonadCofree f w => ComonadCofree f (IdentityT w) Source # 
Instance details

Defined in Control.Comonad.Cofree.Class

Methods

unwrap :: IdentityT w a -> f (IdentityT w a) Source #

(Functor f, Comonad w) => ComonadCofree f (CofreeT f w) Source # 
Instance details

Defined in Control.Comonad.Trans.Cofree

Methods

unwrap :: CofreeT f w a -> f (CofreeT f w a) Source #

ComonadCofree (Const b :: Type -> Type) ((,) b) Source # 
Instance details

Defined in Control.Comonad.Cofree.Class

Methods

unwrap :: (b, a) -> Const b (b, a) Source #