pandora-0.2.2: 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

unwrap :: 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 => Transformer (Accumulator e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Accumulator

Associated Types

type Schema (Accumulator e) u = (r :: Type -> Type) Source #

type Primary (Accumulator e) a Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Accumulator

type Primary (Accumulator e) a = e :*: a
type Schema (Accumulator e) u Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Accumulator

type Schema (Accumulator e) u = UT Co Co ((:*:) e) u

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

Orphan instances

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

Methods

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Methods

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

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

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

join :: ((UT Co Co ((:*:) e) u :. UT Co Co ((:*:) e) u) := a) -> UT Co Co ((:*:) e) u a Source #

(>=>) :: (a -> UT Co Co ((:*:) e) u b) -> (b -> UT Co Co ((:*:) e) u c) -> a -> UT Co Co ((:*:) e) u c Source #

(<=<) :: (b -> UT Co Co ((:*:) e) u c) -> (a -> UT Co Co ((:*:) e) u b) -> a -> UT Co Co ((:*:) e) u c Source #

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

Methods

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

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

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

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

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

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

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

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

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

Methods

point :: a |-> UT Co Co ((:*:) e) u Source #