pandora-0.1.7: A box of patterns and paradigms

Safe HaskellSafe
LanguageHaskell2010

Pandora.Paradigm.Basis.Twister

Documentation

data Twister t a Source #

Constructors

a :< ((t :.: Twister t) a) infixr 5 
Instances
Covariant t => Covariant (Twister t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Twister

Methods

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

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

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

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

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

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

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

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

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

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

(<&&>) :: Covariant u => ((Twister t :.: u) >< a) -> (a -> b) -> (Twister t :.: u) >< b Source #

(<&&&>) :: (Covariant u, Covariant v) => ((Twister t :.: (u :.: v)) >< a) -> (a -> b) -> (Twister t :.: (u :.: v)) >< b Source #

(<&&&&>) :: (Covariant u, Covariant v, Covariant w) => ((Twister t :.: (u :.: (v :.: w))) >< a) -> (a -> b) -> (Twister t :.: (u :.: (v :.: w))) >< b Source #

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

Defined in Pandora.Paradigm.Basis.Twister

Methods

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

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

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

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

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

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

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

Defined in Pandora.Paradigm.Basis.Twister

Methods

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

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

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

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

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

(<**>) :: Applicative u => (Twister t :.: u) (a -> b) -> (Twister t :.: u) a -> (Twister t :.: u) b Source #

(<***>) :: (Applicative u, Applicative v) => (Twister t :.: (u :.: v)) (a -> b) -> (Twister t :.: (u :.: v)) a -> (Twister t :.: (u :.: v)) b Source #

(<****>) :: (Applicative u, Applicative v, Applicative w) => (Twister t :.: (u :.: (v :.: w))) (a -> b) -> (Twister t :.: (u :.: (v :.: w))) a -> (Twister t :.: (u :.: (v :.: w))) b Source #

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

Defined in Pandora.Paradigm.Basis.Twister

Methods

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

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

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

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

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

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

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

Defined in Pandora.Paradigm.Basis.Twister

Methods

extract :: Twister t a -> a Source #

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

Defined in Pandora.Paradigm.Basis.Twister

Avoidable t => Pointable (Twister t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Twister

Methods

point :: a -> Twister t a Source #

(Avoidable t, Alternative t) => Monad (Twister t) Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Twister

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

Defined in Pandora.Paradigm.Basis.Twister

Methods

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

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

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

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

(->>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w) => (w :.: (v :.: Twister t)) a -> (a -> u b) -> (u :.: (w :.: (v :.: Twister t))) b Source #

(->>>>>) :: (Pointable u, Applicative u, Traversable v, Traversable w, Traversable j) => (j :.: (w :.: (v :.: Twister t))) a -> (a -> u b) -> (u :.: (j :.: (w :.: (v :.: Twister t)))) b Source #

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

Defined in Pandora.Paradigm.Basis.Twister

Methods

(+) :: Twister t a -> Twister t a -> Twister t a Source #

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

Defined in Pandora.Paradigm.Basis.Twister

Methods

zero :: Twister t a Source #

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

Defined in Pandora.Paradigm.Basis.Twister

Methods

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

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

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

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