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

Pandora.Paradigm.Inventory.Imprint

Documentation

newtype Imprint e a Source #

Constructors

Imprint (e -> a) 

Instances

Instances details
Divariant Imprint Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Imprint

Methods

(>->) :: (a -> b) -> (c -> d) -> Imprint b c -> Imprint a d Source #

dimap :: (a -> b) -> (c -> d) -> Imprint b c -> Imprint a d Source #

Covariant (Imprint e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Imprint

Methods

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

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

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

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

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

loeb :: Imprint e (a <:= Imprint e) -> Imprint e a Source #

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

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

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

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

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

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

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

Distributive (Imprint e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Imprint

Methods

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

collect :: Covariant u => (a -> Imprint e b) -> u a -> (Imprint e :. u) := b Source #

distribute :: Covariant u => ((u :. Imprint e) := a) -> (Imprint e :. u) := a Source #

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

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

(>>>>>-) :: (Covariant u, Covariant v, Covariant w, Covariant j) => ((u :. (v :. (w :. j))) := a) -> (a -> Imprint e b) -> (Imprint e :. (u :. (v :. (w :. j)))) := b Source #

Semigroup e => Extendable (Imprint e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Imprint

Methods

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

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

extend :: (Imprint e a -> b) -> Imprint e a -> Imprint e b Source #

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

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

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

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

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

Monoid e => Extractable (Imprint e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Imprint

Methods

extract :: a <:= Imprint e Source #

Interpreted (Imprint e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Imprint

Associated Types

type Primary (Imprint e) a Source #

Methods

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

unite :: Primary (Imprint e) a -> Imprint e a Source #

(||=) :: Interpreted u => (Primary (Imprint e) a -> Primary u b) -> Imprint e a -> u b Source #

(=||) :: Interpreted u => (Imprint e a -> u b) -> Primary (Imprint e) a -> Primary u b Source #

Monoid e => Comonadic (Imprint e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Imprint

Methods

bring :: forall (u :: Type -> Type). Extractable u => (Imprint e :< u) ~> Imprint e 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 #

(-|$) :: Covariant v => v a -> (Accumulator e a -> b) -> v (Imprint e b) Source #

($|-) :: Covariant v => v (Accumulator e a) -> (a -> Imprint e b) -> v b Source #

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

($$$|-) :: (Covariant v, Covariant w, Covariant x) => ((v :. (w :. (x :. Accumulator e))) := a) -> (a -> Imprint e b) -> (v :. (w :. x)) := b Source #

($$$$|-) :: (Covariant v, Covariant w, Covariant x, Covariant y) => ((v :. (w :. (x :. (y :. Accumulator e)))) := a) -> (a -> Imprint e b) -> (v :. (w :. (x :. y))) := b Source #

type Schematic Comonad (Imprint e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Imprint

type Schematic Comonad (Imprint e) = (<.:>) ((->) e :: Type -> Type)
type Primary (Imprint e) a Source # 
Instance details

Defined in Pandora.Paradigm.Inventory.Imprint

type Primary (Imprint e) a = e -> a

Orphan instances

(Semigroup e, Extendable u) => Extendable (((->) e :: Type -> Type) <.:> u) Source # 
Instance details

Methods

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

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

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

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

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

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

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

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