pandora-0.1.5: A box of patterns and paradigms

Safe HaskellSafe
LanguageHaskell2010

Pandora.Paradigm.Basis.Free

Documentation

data Free t a Source #

Constructors

Pure a 
Impure ((t :.: Free t) a) 
Instances
Covariant t => Covariant (Free t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Free

Methods

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

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

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

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

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

loeb :: Free t (Free t a -> a) -> Free t a Source #

(<$$>) :: Covariant u => (a -> b) -> Free t (u a) -> Free t (u b) Source #

(<$$$>) :: (Covariant u, Covariant v) => (a -> b) -> Free t (u (v a)) -> Free t (u (v b)) Source #

(<$$$$>) :: (Covariant u, Covariant v, Covariant w) => (a -> b) -> Free t (u (v (w a))) -> Free t (u (v (w b))) Source #

(<&>) :: Free t a -> (a -> b) -> Free t b Source #

Covariant t => Applicative (Free t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Free

Methods

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

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

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

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

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

Alternative t => Alternative (Free t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Free

Methods

(<+>) :: Free t a -> Free t a -> Free t a Source #

alter :: Free t a -> Free t a -> Free t a Source #

Avoidable t => Avoidable (Free t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Free

Methods

idle :: Free t a Source #

Covariant t => Bindable (Free t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Free

Methods

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

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

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

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

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

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

Covariant t => Pointable (Free t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Free

Methods

point :: a -> Free t a Source #

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

Defined in Pandora.Paradigm.Basis.Free

Methods

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

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

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