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

Pandora.Paradigm.Inventory.Accumulator

Documentation

newtype Accumulator e a Source #

Constructors

Accumulator (e :*: a) 

Instances

Instances details
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 #

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

(<>>=) :: (Accumulator e b -> c) -> (a -> Accumulator e b) -> Accumulator e a -> 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 #

Interpreted (Accumulator e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Accumulator

Associated Types

type Primary (Accumulator e) a Source #

Methods

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

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

Defined in Pandora.Paradigm.Inventory.Accumulator

Methods

wrap :: forall (u :: Type -> Type). Pointable u => Accumulator e ~> (Accumulator e :> u) Source #

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) 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 ((:*:) e <.:> u) Source # 
Instance details

Methods

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

comap :: (a -> b) -> ((:*:) e <.:> u) a -> ((:*:) e <.:> u) b Source #

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

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

void :: ((:*:) e <.:> u) a -> ((:*:) e <.:> u) () Source #

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

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

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

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

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

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

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

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

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

Methods

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

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

bind :: (a -> ((:*:) e <.:> u) b) -> ((:*:) e <.:> u) a -> ((:*:) e <.:> u) b Source #

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

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

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

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

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

(Semigroup e, Applicative u) => Applicative ((:*:) e <.:> u) Source # 
Instance details

Methods

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

apply :: ((:*:) e <.:> u) (a -> b) -> ((:*:) e <.:> u) a -> ((:*:) e <.:> u) b Source #

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

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

forever :: ((:*:) e <.:> u) a -> ((:*:) e <.:> u) b Source #

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

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

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

(Pointable u, Monoid e) => Pointable ((:*:) e <.:> u) Source # 
Instance details

Methods

point :: a |-> ((:*:) e <.:> u) Source #