Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- type (-|) = Adjoint
- class (Covariant target source t, Covariant source target u) => Adjoint source target t u where
- (-|) :: source (t a) b -> target a (u b)
- (|-) :: target a (u b) -> source (t a) b
- (|--------), (|-------), (|------), (|-----), (|----), (|---), (|--) :: target a (u b) -> source (t a) b
- (--------|), (-------|), (------|), (-----|), (----|), (---|), (--|) :: source (t a) b -> target a (u b)
Documentation
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
(-|) :: source (t a) b -> target a (u b) infixl 8 Source #
(|-) :: target a (u b) -> source (t a) b infixl 8 Source #
(|--------) :: target a (u b) -> source (t a) b infixl 1 Source #
(|-------) :: target a (u b) -> source (t a) b infixl 2 Source #
(|------) :: target a (u b) -> source (t a) b infixl 3 Source #
(|-----) :: target a (u b) -> source (t a) b infixl 4 Source #
(|----) :: target a (u b) -> source (t a) b infixl 5 Source #
(|---) :: target a (u b) -> source (t a) b infixl 6 Source #
(|--) :: target a (u b) -> source (t a) b infixl 7 Source #
(--------|) :: source (t a) b -> target a (u b) infixl 1 Source #
(-------|) :: source (t a) b -> target a (u b) infixl 2 Source #
(------|) :: source (t a) b -> target a (u b) infixl 3 Source #
(-----|) :: source (t a) b -> target a (u b) infixl 4 Source #
(----|) :: source (t a) b -> target a (u b) infixl 5 Source #
(---|) :: source (t a) b -> target a (u b) infixl 6 Source #
Instances
Adjoint ((->) :: Type -> Type -> Type) ((->) :: Type -> Type -> Type) Exactly Exactly Source # | |
Defined in Pandora.Paradigm.Primary.Functor.Exactly (-|) :: (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 # (--------|) :: (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 # | |
Defined in Pandora.Paradigm.Inventory (-|) :: (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 # (--------|) :: (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 # | |
Defined in Pandora.Paradigm.Inventory (-|) :: (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 # (--------|) :: (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 # | |
Defined in Pandora.Paradigm.Inventory (-|) :: (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 # (--------|) :: (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 # | |
Defined in Pandora.Paradigm.Algebraic.Functor (-|) :: ((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 # (--------|) :: ((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 # | |
Defined in Pandora.Paradigm.Primary (-|) :: (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 # (--------|) :: (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 # | |
Defined in Pandora.Paradigm.Schemes (-|) :: ((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 # (--------|) :: ((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 # | |
Defined in Pandora.Paradigm.Schemes (-|) :: ((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 # (--------|) :: ((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 # | |
Defined in Pandora.Paradigm.Schemes (-|) :: ((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 # (--------|) :: ((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 # | |
Defined in Pandora.Paradigm.Schemes (-|) :: ((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 # (--------|) :: ((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 # | |
Defined in Pandora.Paradigm.Schemes (-|) :: ((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 # (--------|) :: ((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 # |