free-5.1.10: Monads for free
Copyright (C) 2008-2011 Edward Kmett
License BSD-style (see the file LICENSE)
Maintainer Edward Kmett <ekmett@gmail.com>
Stability experimental
Portability fundeps, MPTCs
Safe Haskell Safe
Language Haskell2010

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

Instances details
ComonadCofree [] Tree Source #
Instance details

Defined in Control.Comonad.Cofree.Class

ComonadCofree Maybe NonEmpty Source #
Instance details

Defined in Control.Comonad.Cofree.Class

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

Defined in Control.Comonad.Cofree

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

Defined in Control.Comonad.Trans.Coiter

( 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

( 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 #