pandora-0.2.6: A box of patterns and paradigms

Safe HaskellSafe
LanguageHaskell2010

Pandora.Paradigm.Basis.Twister

Documentation

data Twister t a Source #

Constructors

Twister a ((t :. Twister t) := a) 
Instances
Covariant Stack Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Stack

Methods

(<$>) :: (a -> b) -> Stack a -> Stack b Source #

comap :: (a -> b) -> Stack a -> Stack b Source #

(<$) :: a -> Stack b -> Stack a Source #

($>) :: Stack a -> b -> Stack b Source #

void :: Stack a -> Stack () Source #

loeb :: Stack (a <-| Stack) -> Stack a Source #

(<&>) :: Stack a -> (a -> b) -> Stack b Source #

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

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

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

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

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

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

Covariant Graph Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Graph

Methods

(<$>) :: (a -> b) -> Graph a -> Graph b Source #

comap :: (a -> b) -> Graph a -> Graph b Source #

(<$) :: a -> Graph b -> Graph a Source #

($>) :: Graph a -> b -> Graph b Source #

void :: Graph a -> Graph () Source #

loeb :: Graph (a <-| Graph) -> Graph a Source #

(<&>) :: Graph a -> (a -> b) -> Graph b Source #

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

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

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

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

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

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

Covariant Binary Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Binary

Methods

(<$>) :: (a -> b) -> Binary a -> Binary b Source #

comap :: (a -> b) -> Binary a -> Binary b Source #

(<$) :: a -> Binary b -> Binary a Source #

($>) :: Binary a -> b -> Binary b Source #

void :: Binary a -> Binary () Source #

loeb :: Binary (a <-| Binary) -> Binary a Source #

(<&>) :: Binary a -> (a -> b) -> Binary b Source #

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

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

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

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

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

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

Applicative Stack Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Stack

Methods

(<*>) :: Stack (a -> b) -> Stack a -> Stack b Source #

apply :: Stack (a -> b) -> Stack a -> Stack b Source #

(*>) :: Stack a -> Stack b -> Stack b Source #

(<*) :: Stack a -> Stack b -> Stack a Source #

forever :: Stack a -> Stack b Source #

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

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

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

Alternative Stack Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Stack

Methods

(<+>) :: Stack a -> Stack a -> Stack a Source #

alter :: Stack a -> Stack a -> Stack a Source #

Avoidable Stack Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Stack

Methods

empty :: Stack a Source #

Pointable Stack Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Stack

Methods

point :: a |-> Stack Source #

Pointable Binary Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Binary

Methods

point :: a |-> Binary Source #

Traversable Stack Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Stack

Methods

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

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

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

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

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

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

Traversable Graph Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Graph

Methods

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

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

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

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

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

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

Traversable Binary Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Binary

Methods

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

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

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

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

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

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

Lowerable Twister Source # 
Instance details

Defined in Pandora.Paradigm.Basis.Twister

Methods

lower :: Extractable u => Twister u ~> u Source #

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 (a <-| Twister t) -> 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 #

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

Defined in Pandora.Paradigm.Basis.Twister

Methods

point :: a |-> Twister t 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 (Stack a) Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Stack

Methods

(+) :: Stack a -> Stack a -> Stack a Source #

Monoid (Stack a) Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Stack

Methods

zero :: Stack a Source #

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

Defined in Pandora.Paradigm.Basis.Twister

Methods

extract :: a <-| Twister t Source #

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

Defined in Pandora.Paradigm.Basis.Twister

Setoid a => Setoid (Stack a) Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Stack

Methods

(==) :: Stack a -> Stack a -> Boolean Source #

(/=) :: Stack a -> Stack a -> Boolean Source #

Substructure (Left :: Type -> Wye Type) Binary Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Binary

Associated Types

type Output Left Binary a = (r :: Type) Source #

Substructure (Right :: Type -> Wye Type) Binary Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Binary

Associated Types

type Output Right Binary a = (r :: Type) Source #

Substructure (Left :: Type -> Wye Type) (Twister Wye) Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Binary

Associated Types

type Output Left (Twister Wye) a = (r :: Type) Source #

Substructure (Right :: Type -> Wye Type) (Twister Wye) Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Binary

Associated Types

type Output Right (Twister Wye) a = (r :: Type) 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 #

type Nonempty Stack Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Stack

type Nonempty Graph Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Graph

type Nonempty Binary Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Binary

type Output (Left :: Type -> Wye Type) Binary a Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Binary

type Output (Left :: Type -> Wye Type) Binary a = (Left :: (Any :: Type) -> Wye (Any :: Type)) :# Binary a
type Output (Right :: Type -> Wye Type) Binary a Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Binary

type Output (Right :: Type -> Wye Type) Binary a = (Right :: (Any :: Type) -> Wye (Any :: Type)) :# Binary a
type Output (Left :: Type -> Wye Type) (Twister Wye) a Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Binary

type Output (Left :: Type -> Wye Type) (Twister Wye) a = Maybe ((Left :: (Any :: Type) -> Wye (Any :: Type)) :# Twister Wye a)
type Output (Right :: Type -> Wye Type) (Twister Wye) a Source # 
Instance details

Defined in Pandora.Paradigm.Structure.Binary

type Output (Right :: Type -> Wye Type) (Twister Wye) a = Maybe ((Right :: (Any :: Type) -> Wye (Any :: Type)) :# Twister Wye a)

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

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