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

Pandora.Pattern.Functor.Adjoint

Synopsis

Documentation

type (-|) = Adjoint infixl 9 Source #

class (Covariant target source t, Covariant source target u) => Adjoint source target t u where Source #

When providing a new instance, you should ensure it satisfies:
* Left adjunction identity: phi cozero ≡ identity
* Right adjunction identity: psi zero ≡ identity
* Left adjunction interchange: phi f ≡ comap f . eta
* Right adjunction interchange: psi f ≡ epsilon . comap f

Minimal complete definition

(-|), (|-)

Methods

(-|) :: source (t a) b -> target a (u b) infixl 9 Source #

(|-) :: target a (u b) -> source (t a) b infixl 9 Source #

(|--) :: target a (u b) -> source (t a) b infixl 8 Source #

(|---) :: target a (u b) -> source (t a) b infixl 7 Source #

(|----) :: target a (u b) -> source (t a) b infixl 6 Source #

(|-----) :: target a (u b) -> source (t a) b infixl 5 Source #

(|------) :: target a (u b) -> source (t a) b infixl 4 Source #

(|-------) :: target a (u b) -> source (t a) b infixl 3 Source #

(|--------) :: target a (u b) -> source (t a) b infixl 2 Source #

(|---------) :: target a (u b) -> source (t a) b infixl 1 Source #

(--|) :: source (t a) b -> target a (u b) infixl 8 Source #

(---|) :: source (t a) b -> target a (u b) infixl 7 Source #

(----|) :: source (t a) b -> target a (u b) infixl 6 Source #

(-----|) :: source (t a) b -> target a (u b) infixl 5 Source #

(------|) :: source (t a) b -> target a (u b) infixl 4 Source #

(-------|) :: source (t a) b -> target a (u b) infixl 3 Source #

(--------|) :: source (t a) b -> target a (u b) infixl 2 Source #

(---------|) :: source (t a) b -> target a (u b) infixl 1 Source #

Instances

Instances details
Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) Exactly Exactly Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Functor.Exactly

Methods

(-|) :: (Exactly a -> b) -> a -> Exactly b Source #

(|-) :: (a -> Exactly b) -> Exactly a -> b Source #

(|--) :: (a -> Exactly b) -> Exactly a -> b Source #

(|---) :: (a -> Exactly b) -> Exactly a -> b Source #

(|----) :: (a -> Exactly b) -> Exactly a -> b Source #

(|-----) :: (a -> Exactly b) -> Exactly a -> b Source #

(|------) :: (a -> Exactly b) -> Exactly a -> b Source #

(|-------) :: (a -> Exactly b) -> Exactly a -> b Source #

(|--------) :: (a -> Exactly b) -> Exactly a -> b Source #

(|---------) :: (a -> Exactly b) -> Exactly a -> b Source #

(--|) :: (Exactly a -> b) -> a -> Exactly b Source #

(---|) :: (Exactly a -> b) -> a -> Exactly b Source #

(----|) :: (Exactly a -> b) -> a -> Exactly b Source #

(-----|) :: (Exactly a -> b) -> a -> Exactly b Source #

(------|) :: (Exactly a -> b) -> a -> Exactly b Source #

(-------|) :: (Exactly a -> b) -> a -> Exactly b Source #

(--------|) :: (Exactly a -> b) -> a -> Exactly b Source #

(---------|) :: (Exactly a -> b) -> a -> Exactly b Source #

Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) (Store s) (State s) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory

Methods

(-|) :: (Store s a -> b) -> a -> State s b Source #

(|-) :: (a -> State s b) -> Store s a -> b Source #

(|--) :: (a -> State s b) -> Store s a -> b Source #

(|---) :: (a -> State s b) -> Store s a -> b Source #

(|----) :: (a -> State s b) -> Store s a -> b Source #

(|-----) :: (a -> State s b) -> Store s a -> b Source #

(|------) :: (a -> State s b) -> Store s a -> b Source #

(|-------) :: (a -> State s b) -> Store s a -> b Source #

(|--------) :: (a -> State s b) -> Store s a -> b Source #

(|---------) :: (a -> State s b) -> Store s a -> b Source #

(--|) :: (Store s a -> b) -> a -> State s b Source #

(---|) :: (Store s a -> b) -> a -> State s b Source #

(----|) :: (Store s a -> b) -> a -> State s b Source #

(-----|) :: (Store s a -> b) -> a -> State s b Source #

(------|) :: (Store s a -> b) -> a -> State s b Source #

(-------|) :: (Store s a -> b) -> a -> State s b Source #

(--------|) :: (Store s a -> b) -> a -> State s b Source #

(---------|) :: (Store s a -> b) -> a -> State s b Source #

Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) (Equipment e) (Provision e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory

Methods

(-|) :: (Equipment e a -> b) -> a -> Provision e b Source #

(|-) :: (a -> Provision e b) -> Equipment e a -> b Source #

(|--) :: (a -> Provision e b) -> Equipment e a -> b Source #

(|---) :: (a -> Provision e b) -> Equipment e a -> b Source #

(|----) :: (a -> Provision e b) -> Equipment e a -> b Source #

(|-----) :: (a -> Provision e b) -> Equipment e a -> b Source #

(|------) :: (a -> Provision e b) -> Equipment e a -> b Source #

(|-------) :: (a -> Provision e b) -> Equipment e a -> b Source #

(|--------) :: (a -> Provision e b) -> Equipment e a -> b Source #

(|---------) :: (a -> Provision e b) -> Equipment e a -> b Source #

(--|) :: (Equipment e a -> b) -> a -> Provision e b Source #

(---|) :: (Equipment e a -> b) -> a -> Provision e b Source #

(----|) :: (Equipment e a -> b) -> a -> Provision e b Source #

(-----|) :: (Equipment e a -> b) -> a -> Provision e b Source #

(------|) :: (Equipment e a -> b) -> a -> Provision e b Source #

(-------|) :: (Equipment e a -> b) -> a -> Provision e b Source #

(--------|) :: (Equipment e a -> b) -> a -> Provision e b Source #

(---------|) :: (Equipment e a -> b) -> a -> Provision e b Source #

Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) (Accumulator e) (Imprint e) Source # 
Instance details

Defined in Pandora.Paradigm.Inventory

Methods

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) ((:*:) s) ((->) s :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Primary.Algebraic

Methods

(-|) :: ((s :*: a) -> b) -> a -> (s -> b) Source #

(|-) :: (a -> (s -> b)) -> (s :*: a) -> b Source #

(|--) :: (a -> (s -> b)) -> (s :*: a) -> b Source #

(|---) :: (a -> (s -> b)) -> (s :*: a) -> b Source #

(|----) :: (a -> (s -> b)) -> (s :*: a) -> b Source #

(|-----) :: (a -> (s -> b)) -> (s :*: a) -> b Source #

(|------) :: (a -> (s -> b)) -> (s :*: a) -> b Source #

(|-------) :: (a -> (s -> b)) -> (s :*: a) -> b Source #

(|--------) :: (a -> (s -> b)) -> (s :*: a) -> b Source #

(|---------) :: (a -> (s -> b)) -> (s :*: a) -> b Source #

(--|) :: ((s :*: a) -> b) -> a -> (s -> b) Source #

(---|) :: ((s :*: a) -> b) -> a -> (s -> b) Source #

(----|) :: ((s :*: a) -> b) -> a -> (s -> b) Source #

(-----|) :: ((s :*: a) -> b) -> a -> (s -> b) Source #

(------|) :: ((s :*: a) -> b) -> a -> (s -> b) Source #

(-------|) :: ((s :*: a) -> b) -> a -> (s -> b) Source #

(--------|) :: ((s :*: a) -> b) -> a -> (s -> b) Source #

(---------|) :: ((s :*: a) -> b) -> a -> (s -> b) Source #

Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) (Flip (:*:) s) ((->) s :: Type -> Type) Source # 
Instance details

Defined in Pandora.Paradigm.Primary

Methods

(-|) :: (Flip (:*:) s a -> b) -> a -> (s -> b) Source #

(|-) :: (a -> (s -> b)) -> Flip (:*:) s a -> b Source #

(|--) :: (a -> (s -> b)) -> Flip (:*:) s a -> b Source #

(|---) :: (a -> (s -> b)) -> Flip (:*:) s a -> b Source #

(|----) :: (a -> (s -> b)) -> Flip (:*:) s a -> b Source #

(|-----) :: (a -> (s -> b)) -> Flip (:*:) s a -> b Source #

(|------) :: (a -> (s -> b)) -> Flip (:*:) s a -> b Source #

(|-------) :: (a -> (s -> b)) -> Flip (:*:) s a -> b Source #

(|--------) :: (a -> (s -> b)) -> Flip (:*:) s a -> b Source #

(|---------) :: (a -> (s -> b)) -> Flip (:*:) s a -> b Source #

(--|) :: (Flip (:*:) s a -> b) -> a -> (s -> b) Source #

(---|) :: (Flip (:*:) s a -> b) -> a -> (s -> b) Source #

(----|) :: (Flip (:*:) s a -> b) -> a -> (s -> b) Source #

(-----|) :: (Flip (:*:) s a -> b) -> a -> (s -> b) Source #

(------|) :: (Flip (:*:) s a -> b) -> a -> (s -> b) Source #

(-------|) :: (Flip (:*:) s a -> b) -> a -> (s -> b) Source #

(--------|) :: (Flip (:*:) s a -> b) -> a -> (s -> b) Source #

(---------|) :: (Flip (:*:) s a -> b) -> a -> (s -> b) Source #

(Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) (t <.:> v), Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) (w <:.> u), Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) v u, Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t w) => Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) (t <.:> v) (w <:.> u) Source # 
Instance details

Defined in Pandora.Paradigm.Schemes

Methods

(-|) :: ((t <.:> v) a -> b) -> a -> (w <:.> u) b Source #

(|-) :: (a -> (w <:.> u) b) -> (t <.:> v) a -> b Source #

(|--) :: (a -> (w <:.> u) b) -> (t <.:> v) a -> b Source #

(|---) :: (a -> (w <:.> u) b) -> (t <.:> v) a -> b Source #

(|----) :: (a -> (w <:.> u) b) -> (t <.:> v) a -> b Source #

(|-----) :: (a -> (w <:.> u) b) -> (t <.:> v) a -> b Source #

(|------) :: (a -> (w <:.> u) b) -> (t <.:> v) a -> b Source #

(|-------) :: (a -> (w <:.> u) b) -> (t <.:> v) a -> b Source #

(|--------) :: (a -> (w <:.> u) b) -> (t <.:> v) a -> b Source #

(|---------) :: (a -> (w <:.> u) b) -> (t <.:> v) a -> b Source #

(--|) :: ((t <.:> v) a -> b) -> a -> (w <:.> u) b Source #

(---|) :: ((t <.:> v) a -> b) -> a -> (w <:.> u) b Source #

(----|) :: ((t <.:> v) a -> b) -> a -> (w <:.> u) b Source #

(-----|) :: ((t <.:> v) a -> b) -> a -> (w <:.> u) b Source #

(------|) :: ((t <.:> v) a -> b) -> a -> (w <:.> u) b Source #

(-------|) :: ((t <.:> v) a -> b) -> a -> (w <:.> u) b Source #

(--------|) :: ((t <.:> v) a -> b) -> a -> (w <:.> u) b Source #

(---------|) :: ((t <.:> v) a -> b) -> a -> (w <:.> u) b Source #

(Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) (t <.:> v), Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) (w <.:> u), Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t u, Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) v w) => Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) (t <.:> v) (w <.:> u) Source # 
Instance details

Defined in Pandora.Paradigm.Schemes

Methods

(-|) :: ((t <.:> v) a -> b) -> a -> (w <.:> u) b Source #

(|-) :: (a -> (w <.:> u) b) -> (t <.:> v) a -> b Source #

(|--) :: (a -> (w <.:> u) b) -> (t <.:> v) a -> b Source #

(|---) :: (a -> (w <.:> u) b) -> (t <.:> v) a -> b Source #

(|----) :: (a -> (w <.:> u) b) -> (t <.:> v) a -> b Source #

(|-----) :: (a -> (w <.:> u) b) -> (t <.:> v) a -> b Source #

(|------) :: (a -> (w <.:> u) b) -> (t <.:> v) a -> b Source #

(|-------) :: (a -> (w <.:> u) b) -> (t <.:> v) a -> b Source #

(|--------) :: (a -> (w <.:> u) b) -> (t <.:> v) a -> b Source #

(|---------) :: (a -> (w <.:> u) b) -> (t <.:> v) a -> b Source #

(--|) :: ((t <.:> v) a -> b) -> a -> (w <.:> u) b Source #

(---|) :: ((t <.:> v) a -> b) -> a -> (w <.:> u) b Source #

(----|) :: ((t <.:> v) a -> b) -> a -> (w <.:> u) b Source #

(-----|) :: ((t <.:> v) a -> b) -> a -> (w <.:> u) b Source #

(------|) :: ((t <.:> v) a -> b) -> a -> (w <.:> u) b Source #

(-------|) :: ((t <.:> v) a -> b) -> a -> (w <.:> u) b Source #

(--------|) :: ((t <.:> v) a -> b) -> a -> (w <.:> u) b Source #

(---------|) :: ((t <.:> v) a -> b) -> a -> (w <.:> u) b Source #

(Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) (v <:.> t), Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) (w <.:> u), Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t u, Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) v w) => Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) (v <:.> t) (w <.:> u) Source # 
Instance details

Defined in Pandora.Paradigm.Schemes

Methods

(-|) :: ((v <:.> t) a -> b) -> a -> (w <.:> u) b Source #

(|-) :: (a -> (w <.:> u) b) -> (v <:.> t) a -> b Source #

(|--) :: (a -> (w <.:> u) b) -> (v <:.> t) a -> b Source #

(|---) :: (a -> (w <.:> u) b) -> (v <:.> t) a -> b Source #

(|----) :: (a -> (w <.:> u) b) -> (v <:.> t) a -> b Source #

(|-----) :: (a -> (w <.:> u) b) -> (v <:.> t) a -> b Source #

(|------) :: (a -> (w <.:> u) b) -> (v <:.> t) a -> b Source #

(|-------) :: (a -> (w <.:> u) b) -> (v <:.> t) a -> b Source #

(|--------) :: (a -> (w <.:> u) b) -> (v <:.> t) a -> b Source #

(|---------) :: (a -> (w <.:> u) b) -> (v <:.> t) a -> b Source #

(--|) :: ((v <:.> t) a -> b) -> a -> (w <.:> u) b Source #

(---|) :: ((v <:.> t) a -> b) -> a -> (w <.:> u) b Source #

(----|) :: ((v <:.> t) a -> b) -> a -> (w <.:> u) b Source #

(-----|) :: ((v <:.> t) a -> b) -> a -> (w <.:> u) b Source #

(------|) :: ((v <:.> t) a -> b) -> a -> (w <.:> u) b Source #

(-------|) :: ((v <:.> t) a -> b) -> a -> (w <.:> u) b Source #

(--------|) :: ((v <:.> t) a -> b) -> a -> (w <.:> u) b Source #

(---------|) :: ((v <:.> t) a -> b) -> a -> (w <.:> u) b Source #

(Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) (v <:.> t), Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) (u <:.> w), Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t u, Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) v w) => Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) (v <:.> t) (u <:.> w) Source # 
Instance details

Defined in Pandora.Paradigm.Schemes

Methods

(-|) :: ((v <:.> t) a -> b) -> a -> (u <:.> w) b Source #

(|-) :: (a -> (u <:.> w) b) -> (v <:.> t) a -> b Source #

(|--) :: (a -> (u <:.> w) b) -> (v <:.> t) a -> b Source #

(|---) :: (a -> (u <:.> w) b) -> (v <:.> t) a -> b Source #

(|----) :: (a -> (u <:.> w) b) -> (v <:.> t) a -> b Source #

(|-----) :: (a -> (u <:.> w) b) -> (v <:.> t) a -> b Source #

(|------) :: (a -> (u <:.> w) b) -> (v <:.> t) a -> b Source #

(|-------) :: (a -> (u <:.> w) b) -> (v <:.> t) a -> b Source #

(|--------) :: (a -> (u <:.> w) b) -> (v <:.> t) a -> b Source #

(|---------) :: (a -> (u <:.> w) b) -> (v <:.> t) a -> b Source #

(--|) :: ((v <:.> t) a -> b) -> a -> (u <:.> w) b Source #

(---|) :: ((v <:.> t) a -> b) -> a -> (u <:.> w) b Source #

(----|) :: ((v <:.> t) a -> b) -> a -> (u <:.> w) b Source #

(-----|) :: ((v <:.> t) a -> b) -> a -> (u <:.> w) b Source #

(------|) :: ((v <:.> t) a -> b) -> a -> (u <:.> w) b Source #

(-------|) :: ((v <:.> t) a -> b) -> a -> (u <:.> w) b Source #

(--------|) :: ((v <:.> t) a -> b) -> a -> (u <:.> w) b Source #

(---------|) :: ((v <:.> t) a -> b) -> a -> (u <:.> w) b Source #

(Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) ((t <:<.>:> u) t'), Covariant ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) ((v <:<.>:> w) v'), Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t w, Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t' v', Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) t v, Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) u v, Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) v' t') => Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) ((t <:<.>:> u) t') ((v <:<.>:> w) v') Source # 
Instance details

Defined in Pandora.Paradigm.Schemes

Methods

(-|) :: ((t <:<.>:> u) t' a -> b) -> a -> (v <:<.>:> w) v' b Source #

(|-) :: (a -> (v <:<.>:> w) v' b) -> (t <:<.>:> u) t' a -> b Source #

(|--) :: (a -> (v <:<.>:> w) v' b) -> (t <:<.>:> u) t' a -> b Source #

(|---) :: (a -> (v <:<.>:> w) v' b) -> (t <:<.>:> u) t' a -> b Source #

(|----) :: (a -> (v <:<.>:> w) v' b) -> (t <:<.>:> u) t' a -> b Source #

(|-----) :: (a -> (v <:<.>:> w) v' b) -> (t <:<.>:> u) t' a -> b Source #

(|------) :: (a -> (v <:<.>:> w) v' b) -> (t <:<.>:> u) t' a -> b Source #

(|-------) :: (a -> (v <:<.>:> w) v' b) -> (t <:<.>:> u) t' a -> b Source #

(|--------) :: (a -> (v <:<.>:> w) v' b) -> (t <:<.>:> u) t' a -> b Source #

(|---------) :: (a -> (v <:<.>:> w) v' b) -> (t <:<.>:> u) t' a -> b Source #

(--|) :: ((t <:<.>:> u) t' a -> b) -> a -> (v <:<.>:> w) v' b Source #

(---|) :: ((t <:<.>:> u) t' a -> b) -> a -> (v <:<.>:> w) v' b Source #

(----|) :: ((t <:<.>:> u) t' a -> b) -> a -> (v <:<.>:> w) v' b Source #

(-----|) :: ((t <:<.>:> u) t' a -> b) -> a -> (v <:<.>:> w) v' b Source #

(------|) :: ((t <:<.>:> u) t' a -> b) -> a -> (v <:<.>:> w) v' b Source #

(-------|) :: ((t <:<.>:> u) t' a -> b) -> a -> (v <:<.>:> w) v' b Source #

(--------|) :: ((t <:<.>:> u) t' a -> b) -> a -> (v <:<.>:> w) v' b Source #

(---------|) :: ((t <:<.>:> u) t' a -> b) -> a -> (v <:<.>:> w) v' b Source #