Control.Comonad.Cofree.Class

free-4.12.4: 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

- class (Functor f, Comonad w) => ComonadCofree f w | w -> f where
  - unwrap :: w a -> f (w a)

# Documentation

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

Allows you to peel a layer off a cofree comonad.

Methods

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

Remove a layer.

Instances

ComonadCofree [] Tree |
ComonadCofree Maybe NonEmpty |
ComonadCofree f w => ComonadCofree f (IdentityT w) |
Functor f => ComonadCofree f (Cofree f) |
Comonad w => ComonadCofree Identity (CoiterT w) |
(ComonadCofree f w, Monoid m) => ComonadCofree f (TracedT m w) |
ComonadCofree f w => ComonadCofree f (StoreT s w) |
ComonadCofree f w => ComonadCofree f (EnvT e w) |
(Functor f, Comonad w) => ComonadCofree f (CofreeT f w) |
ComonadCofree (Const b) ((,) b) |