| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Proarrow.Category.Instance.Duploid
Documentation
data DUPLOID (adj :: p +-> n) Source Comments #
Instances
data SDuploidObj (x :: DUPLOID adj) where Source Comments #
data Duploid (x :: DUPLOID adj) (y :: DUPLOID adj) where Source Comments #
Constructors
| Duploid :: forall {p} {n} {adj :: p +-> n} (x :: DUPLOID adj) (y :: DUPLOID adj). (Ob x, Ob y) => adj (Neg x) (Pos y) -> Duploid x y |
Instances
| Adjunction adj => Promonad (Duploid :: DUPLOID adj -> DUPLOID adj -> Type) Source Comments # | ATTENTION: a duploid is not associative, so not really a promonad/category! |
| (Adjunction adj, StrongMonoidalRep adj) => MonoidalProfunctor (Duploid :: DUPLOID adj -> DUPLOID adj -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Duploid | |
| Adjunction adj => Profunctor (Duploid :: DUPLOID adj -> DUPLOID adj -> Type) Source Comments # | |
Defined in Proarrow.Category.Instance.Duploid | |
(•) :: forall {j} {k} {adj :: j +-> k} (x :: DUPLOID adj) (y :: k) (z :: DUPLOID adj). Corepresentable adj => (('N y :: DUPLOID adj) ~> z) -> (x ~> ('N y :: DUPLOID adj)) -> x ~> z Source Comments #
(◦) :: forall {j} {k} {adj :: j +-> k} (x :: DUPLOID adj) (y :: j) (z :: DUPLOID adj). Representable adj => (('P y :: DUPLOID adj) ~> z) -> (x ~> ('P y :: DUPLOID adj)) -> x ~> z Source Comments #
fromThunkable :: forall {p} {n} {adj :: p +-> n} (x :: p) (y :: p). Adjunction adj => (x ~> y) -> ('P x :: DUPLOID adj) ~> ('P y :: DUPLOID adj) Source Comments #
fromLinear :: forall {p} {n} {adj :: p +-> n} (x :: n) (y :: n). Adjunction adj => (x ~> y) -> ('N x :: DUPLOID adj) ~> ('N y :: DUPLOID adj) Source Comments #
shiftPosObj :: forall {p} {n} {adj :: p +-> n} (x :: DUPLOID adj). (Adjunction adj, Ob x) => x ~> (Up x :: DUPLOID adj) Source Comments #
shiftPosLift :: forall {p} {n} {adj :: p +-> n} (x :: DUPLOID adj) (y :: DUPLOID adj). Adjunction adj => (x ~> y) -> (Up x :: DUPLOID adj) ~> y Source Comments #
shiftPos :: forall {p} {n} {adj :: p +-> n} (x :: DUPLOID adj) (y :: DUPLOID adj). Adjunction adj => (x ~> y) -> (Up x :: DUPLOID adj) ~> (Up y :: DUPLOID adj) Source Comments #
shiftNegObj :: forall {p} {n} {adj :: p +-> n} (x :: DUPLOID adj). (Adjunction adj, Ob x) => (Dn x :: DUPLOID adj) ~> x Source Comments #
shiftNegLift :: forall {p} {n} {adj :: p +-> n} (x :: DUPLOID adj) (y :: DUPLOID adj). Adjunction adj => (x ~> y) -> x ~> (Dn y :: DUPLOID adj) Source Comments #
shiftNeg :: forall {p} {n} {adj :: p +-> n} (x :: DUPLOID adj) (y :: DUPLOID adj). Adjunction adj => (x ~> y) -> (Dn x :: DUPLOID adj) ~> (Dn y :: DUPLOID adj) Source Comments #
type StrongSymMonAdj (adj :: p +-> n) = (Adjunction adj, StrongMonoidalRep adj, SymMonoidal p) Source Comments #