pandora-0.2.7: A box of patterns and paradigms

Safe HaskellSafe
LanguageHaskell2010

Pandora.Paradigm.Inventory.Accumulator

Contents

Documentation

newtype Accumulator e a Source #

Constructors

Accumulator (e :*: a) 
Instances
Interpreted (Accumulator e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Accumulator

Associated Types

type Primary (Accumulator e) a :: Type Source #

Methods

run :: Accumulator e a -> Primary (Accumulator e) a Source #

Covariant (Accumulator e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Accumulator

Methods

(<$>) :: (a -> b) -> Accumulator e a -> Accumulator e b Source #

comap :: (a -> b) -> Accumulator e a -> Accumulator e b Source #

(<$) :: a -> Accumulator e b -> Accumulator e a Source #

($>) :: Accumulator e a -> b -> Accumulator e b Source #

void :: Accumulator e a -> Accumulator e () Source #

loeb :: Accumulator e (a <-| Accumulator e) -> Accumulator e a Source #

(<&>) :: Accumulator e a -> (a -> b) -> Accumulator e b Source #

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

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

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

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

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

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

Semigroup e => Bindable (Accumulator e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Accumulator

Methods

(>>=) :: Accumulator e a -> (a -> Accumulator e b) -> Accumulator e b Source #

(=<<) :: (a -> Accumulator e b) -> Accumulator e a -> Accumulator e b Source #

bind :: (a -> Accumulator e b) -> Accumulator e a -> Accumulator e b Source #

join :: ((Accumulator e :. Accumulator e) := a) -> Accumulator e a Source #

(>=>) :: (a -> Accumulator e b) -> (b -> Accumulator e c) -> a -> Accumulator e c Source #

(<=<) :: (b -> Accumulator e c) -> (a -> Accumulator e b) -> a -> Accumulator e c Source #

Semigroup e => Applicative (Accumulator e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Accumulator

Methods

(<*>) :: Accumulator e (a -> b) -> Accumulator e a -> Accumulator e b Source #

apply :: Accumulator e (a -> b) -> Accumulator e a -> Accumulator e b Source #

(*>) :: Accumulator e a -> Accumulator e b -> Accumulator e b Source #

(<*) :: Accumulator e a -> Accumulator e b -> Accumulator e a Source #

forever :: Accumulator e a -> Accumulator e b Source #

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

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

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

Monoid e => Pointable (Accumulator e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Accumulator

Methods

point :: a |-> Accumulator e Source #

Monoid e => Monadic (Accumulator e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Accumulator

Adjoint (Accumulator e) (Imprint e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory

Methods

(-|) :: a -> (Accumulator e a -> b) -> Imprint e b Source #

(|-) :: Accumulator e a -> (a -> Imprint e b) -> b Source #

phi :: (Accumulator e a -> b) -> a -> Imprint e b Source #

psi :: (a -> Imprint e b) -> Accumulator e a -> b Source #

eta :: a -> (Imprint e :. Accumulator e) := a Source #

epsilon :: ((Accumulator e :. Imprint e) := a) -> a Source #

type Schematic Monad (Accumulator e) u Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Accumulator

type Primary (Accumulator e) a Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Accumulator

type Primary (Accumulator e) a = e :*: a

gather :: Accumulated e t => e -> t () Source #

Orphan instances

Covariant u => Covariant (UT Covariant Covariant ((:*:) e) u) Source # 
Instance details

Methods

(<$>) :: (a -> b) -> UT Covariant Covariant ((:*:) e) u a -> UT Covariant Covariant ((:*:) e) u b Source #

comap :: (a -> b) -> UT Covariant Covariant ((:*:) e) u a -> UT Covariant Covariant ((:*:) e) u b Source #

(<$) :: a -> UT Covariant Covariant ((:*:) e) u b -> UT Covariant Covariant ((:*:) e) u a Source #

($>) :: UT Covariant Covariant ((:*:) e) u a -> b -> UT Covariant Covariant ((:*:) e) u b Source #

void :: UT Covariant Covariant ((:*:) e) u a -> UT Covariant Covariant ((:*:) e) u () Source #

loeb :: UT Covariant Covariant ((:*:) e) u (a <-| UT Covariant Covariant ((:*:) e) u) -> UT Covariant Covariant ((:*:) e) u a Source #

(<&>) :: UT Covariant Covariant ((:*:) e) u a -> (a -> b) -> UT Covariant Covariant ((:*:) e) u b Source #

(<$$>) :: Covariant u0 => (a -> b) -> ((UT Covariant Covariant ((:*:) e) u :. u0) := a) -> (UT Covariant Covariant ((:*:) e) u :. u0) := b Source #

(<$$$>) :: (Covariant u0, Covariant v) => (a -> b) -> ((UT Covariant Covariant ((:*:) e) u :. (u0 :. v)) := a) -> (UT Covariant Covariant ((:*:) e) u :. (u0 :. v)) := b Source #

(<$$$$>) :: (Covariant u0, Covariant v, Covariant w) => (a -> b) -> ((UT Covariant Covariant ((:*:) e) u :. (u0 :. (v :. w))) := a) -> (UT Covariant Covariant ((:*:) e) u :. (u0 :. (v :. w))) := b Source #

(<&&>) :: Covariant u0 => ((UT Covariant Covariant ((:*:) e) u :. u0) := a) -> (a -> b) -> (UT Covariant Covariant ((:*:) e) u :. u0) := b Source #

(<&&&>) :: (Covariant u0, Covariant v) => ((UT Covariant Covariant ((:*:) e) u :. (u0 :. v)) := a) -> (a -> b) -> (UT Covariant Covariant ((:*:) e) u :. (u0 :. v)) := b Source #

(<&&&&>) :: (Covariant u0, Covariant v, Covariant w) => ((UT Covariant Covariant ((:*:) e) u :. (u0 :. (v :. w))) := a) -> (a -> b) -> (UT Covariant Covariant ((:*:) e) u :. (u0 :. (v :. w))) := b Source #

(Semigroup e, Pointable u, Bindable u) => Bindable (UT Covariant Covariant ((:*:) e) u) Source # 
Instance details

(Semigroup e, Applicative u) => Applicative (UT Covariant Covariant ((:*:) e) u) Source # 
Instance details

Methods

(<*>) :: UT Covariant Covariant ((:*:) e) u (a -> b) -> UT Covariant Covariant ((:*:) e) u a -> UT Covariant Covariant ((:*:) e) u b Source #

apply :: UT Covariant Covariant ((:*:) e) u (a -> b) -> UT Covariant Covariant ((:*:) e) u a -> UT Covariant Covariant ((:*:) e) u b Source #

(*>) :: UT Covariant Covariant ((:*:) e) u a -> UT Covariant Covariant ((:*:) e) u b -> UT Covariant Covariant ((:*:) e) u b Source #

(<*) :: UT Covariant Covariant ((:*:) e) u a -> UT Covariant Covariant ((:*:) e) u b -> UT Covariant Covariant ((:*:) e) u a Source #

forever :: UT Covariant Covariant ((:*:) e) u a -> UT Covariant Covariant ((:*:) e) u b Source #

(<**>) :: Applicative u0 => ((UT Covariant Covariant ((:*:) e) u :. u0) := (a -> b)) -> ((UT Covariant Covariant ((:*:) e) u :. u0) := a) -> (UT Covariant Covariant ((:*:) e) u :. u0) := b Source #

(<***>) :: (Applicative u0, Applicative v) => ((UT Covariant Covariant ((:*:) e) u :. (u0 :. v)) := (a -> b)) -> ((UT Covariant Covariant ((:*:) e) u :. (u0 :. v)) := a) -> (UT Covariant Covariant ((:*:) e) u :. (u0 :. v)) := b Source #

(<****>) :: (Applicative u0, Applicative v, Applicative w) => ((UT Covariant Covariant ((:*:) e) u :. (u0 :. (v :. w))) := (a -> b)) -> ((UT Covariant Covariant ((:*:) e) u :. (u0 :. (v :. w))) := a) -> (UT Covariant Covariant ((:*:) e) u :. (u0 :. (v :. w))) := b Source #

(Pointable u, Monoid e) => Pointable (UT Covariant Covariant ((:*:) e) u) Source # 
Instance details