pandora-0.2.5: A box of patterns and paradigms

Safe HaskellSafe
LanguageHaskell2010

Pandora.Paradigm.Structure.Specific.Stack

Contents

Synopsis

Documentation

type Stack = UT Covariant Covariant (Twister Maybe) Maybe Source #

Linear data structure that serves as a collection of elements

push :: a -> Stack a -> Stack a Source #

linearize :: Traversable t => t ~> Stack Source #

Transform any traversable structure into a stack

Orphan instances

Covariant Stack Source # 
Instance details

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 #

Applicative Stack Source # 
Instance details

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

Methods

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

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

Avoidable Stack Source # 
Instance details

Methods

empty :: Stack a Source #

Pointable Stack Source # 
Instance details

Methods

point :: a |-> Stack Source #

Traversable Stack Source # 
Instance details

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 #

Semigroup (Stack a) Source # 
Instance details

Methods

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

Monoid (Stack a) Source # 
Instance details

Methods

zero :: Stack a Source #

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

Methods

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

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