pandora-0.3.7: A box of patterns and paradigms
Safe HaskellSafe-Inferred
LanguageHaskell2010

Pandora.Paradigm.Structure.Some.Stack

Synopsis

Documentation

type Stack = Maybe <:.> Construction Maybe Source #

Linear data structure that serves as a collection of elements

filter :: forall a. Predicate a -> Stack a -> Stack a Source #

linearize :: forall t a. Traversable t => t a -> Stack a Source #

Transform any traversable structure into a stack

Orphan instances

Insertable Stack Source # 
Instance details

Methods

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

Deletable Stack Source # 
Instance details

Methods

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

Measurable 'Length Stack Source # 
Instance details

Associated Types

type Measural 'Length Stack a Source #

Measurable 'Length (Construction Maybe) Source # 
Instance details

Associated Types

type Measural 'Length (Construction Maybe) a Source #

Monotonic a (Construction Maybe a) Source # 
Instance details

Methods

reduce :: (a -> r -> r) -> r -> Construction Maybe a -> r Source #

resolve :: (a -> r) -> r -> Construction Maybe a -> r Source #

Monotonic a ((Maybe <:.> Construction Maybe) := a) Source # 
Instance details

Methods

reduce :: (a -> r -> r) -> r -> ((Maybe <:.> Construction Maybe) := a) -> r Source #

resolve :: (a -> r) -> r -> ((Maybe <:.> Construction Maybe) := a) -> r Source #

Insertable (Construction Maybe) Source # 
Instance details

Extendable (Tap ((:*:) <:.:> Stack)) Source # 
Instance details

Methods

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

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

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

duplicate :: Tap ((:*:) <:.:> Stack) a -> (Tap ((:*:) <:.:> Stack) :. Tap ((:*:) <:.:> Stack)) := a Source #

(=<=) :: (Tap ((:*:) <:.:> Stack) b -> c) -> (Tap ((:*:) <:.:> Stack) a -> b) -> Tap ((:*:) <:.:> Stack) a -> c Source #

(=>=) :: (Tap ((:*:) <:.:> Stack) a -> b) -> (Tap ((:*:) <:.:> Stack) b -> c) -> Tap ((:*:) <:.:> Stack) a -> c Source #

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

(<<=$) :: Covariant u => ((u :. Tap ((:*:) <:.:> Stack)) := a) -> (Tap ((:*:) <:.:> Stack) a -> b) -> (u :. Tap ((:*:) <:.:> 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 #

Nullable Stack Source # 
Instance details

Methods

null :: forall (a :: k). (Predicate :. Stack) := a Source #

Focusable ('Head :: Type -> Location Type) Stack Source # 
Instance details

Associated Types

type Focusing 'Head Stack a Source #

Focusable ('Head :: Type -> Location Type) (Construction Maybe) Source # 
Instance details

Associated Types

type Focusing 'Head (Construction Maybe) a Source #

Morphable ('Into Stack) (Construction Maybe) Source # 
Instance details

Associated Types

type Morphing ('Into Stack) (Construction Maybe) :: Type -> Type Source #

Morphable ('Rotate ('Right :: a -> Wye a) :: Morph (a -> Wye a)) (Tap ((:*:) <:.:> Construction Maybe)) Source # 
Instance details

Associated Types

type Morphing ('Rotate 'Right) (Tap ((:*:) <:.:> Construction Maybe)) :: Type -> Type Source #

Morphable ('Rotate ('Left :: a -> Wye a) :: Morph (a -> Wye a)) (Tap ((:*:) <:.:> Construction Maybe)) Source # 
Instance details

Associated Types

type Morphing ('Rotate 'Left) (Tap ((:*:) <:.:> Construction Maybe)) :: Type -> Type Source #

Morphable ('Rotate ('Right :: a -> Wye a) :: Morph (a -> Wye a)) (Tap ((:*:) <:.:> Stack)) Source # 
Instance details

Associated Types

type Morphing ('Rotate 'Right) (Tap ((:*:) <:.:> Stack)) :: Type -> Type Source #

Morphable ('Rotate ('Left :: a -> Wye a) :: Morph (a -> Wye a)) (Tap ((:*:) <:.:> Stack)) Source # 
Instance details

Associated Types

type Morphing ('Rotate 'Left) (Tap ((:*:) <:.:> Stack)) :: Type -> Type Source #

Semigroup (Construction Maybe a) Source # 
Instance details

Substructure ('Tail :: a -> Segment a) Stack Source # 
Instance details

Associated Types

type Substructural 'Tail Stack :: Type -> Type Source #

Substructure ('Tail :: a -> Segment a) (Construction Maybe) Source # 
Instance details

Associated Types

type Substructural 'Tail (Construction Maybe) :: Type -> Type Source #