pandora-0.1.3: A box of patterns and paradigms

Safe HaskellSafe
LanguageHaskell2010

Pandora.Paradigm.Basis.Cofree

Documentation

data Cofree t a Source #

Constructors

a :< ((t :.: Cofree t) a) 
Instances
Covariant t => Covariant (Cofree t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Cofree

Methods

(<$>) :: (a -> b) -> Cofree t a -> Cofree t b Source #

comap :: (a -> b) -> Cofree t a -> Cofree t b Source #

(<$) :: a -> Cofree t b -> Cofree t a Source #

($>) :: Cofree t a -> b -> Cofree t b Source #

void :: Cofree t a -> Cofree t () Source #

Applicative t => Applicative (Cofree t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Cofree

Methods

(<*>) :: Cofree t (a -> b) -> Cofree t a -> Cofree t b Source #

apply :: Cofree t (a -> b) -> Cofree t a -> Cofree t b Source #

(*>) :: Cofree t a -> Cofree t b -> Cofree t b Source #

(<*) :: Cofree t a -> Cofree t b -> Cofree t a Source #

forever :: Cofree t a -> Cofree t b Source #

Alternative t => Bindable (Cofree t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Cofree

Methods

(>>=) :: Cofree t a -> (a -> Cofree t b) -> Cofree t b Source #

(=<<) :: (a -> Cofree t b) -> Cofree t a -> Cofree t b Source #

bind :: (a -> Cofree t b) -> Cofree t a -> Cofree t b Source #

join :: (Cofree t :.: Cofree t) a -> Cofree t a Source #

(>=>) :: (a -> Cofree t b) -> (b -> Cofree t c) -> a -> Cofree t c Source #

(<=<) :: (b -> Cofree t c) -> (a -> Cofree t b) -> a -> Cofree t c Source #

Covariant t => Extendable (Cofree t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Cofree

Methods

(=>>) :: Cofree t a -> (Cofree t a -> b) -> Cofree t b Source #

(<<=) :: (Cofree t a -> b) -> Cofree t a -> Cofree t b Source #

extend :: (Cofree t a -> b) -> Cofree t a -> Cofree t b Source #

duplicate :: Cofree t a -> (Cofree t :.: Cofree t) a Source #

(=<=) :: (Cofree t b -> c) -> (Cofree t a -> b) -> Cofree t a -> c Source #

(=>=) :: (Cofree t a -> b) -> (Cofree t b -> c) -> Cofree t a -> c Source #

Covariant t => Extractable (Cofree t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Cofree

Methods

extract :: Cofree t a -> a Source #

Covariant t => Comonad (Cofree t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Cofree

Exclusive t => Pointable (Cofree t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Cofree

Methods

point :: a -> Cofree t a Source #

(Exclusive t, Alternative t) => Monad (Cofree t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Cofree

Traversable t => Traversable (Cofree t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Cofree

Methods

(->>) :: (Pointable u, Applicative u) => Cofree t a -> (a -> u b) -> (u :.: Cofree t) b Source #

traverse :: (Pointable u, Applicative u) => (a -> u b) -> Cofree t a -> (u :.: Cofree t) b Source #

sequence :: (Pointable u, Applicative u) => (Cofree t :.: u) a -> (u :.: Cofree t) a Source #

(Semigroup a, forall b. Semigroup b => Semigroup (t b)) => Semigroup (Cofree t a) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Cofree

Methods

(<>) :: Cofree t a -> Cofree t a -> Cofree t a Source #

(Monoid a, forall b. Semigroup b => Monoid (t b)) => Monoid (Cofree t a) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Cofree

Methods

unit :: Cofree t a Source #

(Setoid a, forall b. Setoid b => Setoid (t b)) => Setoid (Cofree t a) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Cofree

Methods

(==) :: Cofree t a -> Cofree t a -> Boolean Source #

(/=) :: Cofree t a -> Cofree t a -> Boolean Source #

unwrap :: Cofree t a -> (t :.: Cofree t) a Source #

coiterate :: Covariant t => (a -> t a) -> a -> Cofree t a Source #