Safe Haskell | None |
---|---|
Language | Haskell2010 |
Proarrow.Object.Dual
Documentation
class (SymMonoidal k, Closed k, forall (a :: k). Ob a => ObDual a, Ob (Unit :: k)) => StarAutonomous k where Source Comments #
Methods
dual :: forall (a :: k) (b :: k). (a ~> b) -> Dual b ~> Dual a Source Comments #
dualInv :: forall (a :: k) (b :: k). (Ob a, Ob b) => (Dual a ~> Dual b) -> b ~> a Source Comments #
linDist :: forall (a :: k) (b :: k) (c :: k). (Ob a, Ob b, Ob c) => ((a ** b) ~> Dual c) -> a ~> Dual (b ** c) Source Comments #
linDistInv :: forall (a :: k) (b :: k) (c :: k). (Ob a, Ob b, Ob c) => (a ~> Dual (b ** c)) -> (a ** b) ~> Dual c Source Comments #
Instances
StarAutonomous BOOL Source Comments # | |||||||||
Defined in Proarrow.Category.Instance.Bool Associated Types
Methods dual :: forall (a :: BOOL) (b :: BOOL). (a ~> b) -> Dual b ~> Dual a Source Comments # dualInv :: forall (a :: BOOL) (b :: BOOL). (Ob a, Ob b) => (Dual a ~> Dual b) -> b ~> a Source Comments # linDist :: forall (a :: BOOL) (b :: BOOL) (c :: BOOL). (Ob a, Ob b, Ob c) => ((a ** b) ~> Dual c) -> a ~> Dual (b ** c) Source Comments # linDistInv :: forall (a :: BOOL) (b :: BOOL) (c :: BOOL). (Ob a, Ob b, Ob c) => (a ~> Dual (b ** c)) -> (a ** b) ~> Dual c Source Comments # | |||||||||
StarAutonomous KIND Source Comments # | |||||||||
Defined in Proarrow.Category.Instance.Cat Methods dual :: forall (a :: KIND) (b :: KIND). (a ~> b) -> Dual b ~> Dual a Source Comments # dualInv :: forall (a :: KIND) (b :: KIND). (Ob a, Ob b) => (Dual a ~> Dual b) -> b ~> a Source Comments # linDist :: forall (a :: KIND) (b :: KIND) (c :: KIND). (Ob a, Ob b, Ob c) => ((a ** b) ~> Dual c) -> a ~> Dual (b ** c) Source Comments # linDistInv :: forall (a :: KIND) (b :: KIND) (c :: KIND). (Ob a, Ob b, Ob c) => (a ~> Dual (b ** c)) -> (a ** b) ~> Dual c Source Comments # | |||||||||
StarAutonomous LINEAR Source Comments # | |||||||||
Defined in Proarrow.Category.Instance.Linear Methods dual :: forall (a :: LINEAR) (b :: LINEAR). (a ~> b) -> Dual b ~> Dual a Source Comments # dualInv :: forall (a :: LINEAR) (b :: LINEAR). (Ob a, Ob b) => (Dual a ~> Dual b) -> b ~> a Source Comments # linDist :: forall (a :: LINEAR) (b :: LINEAR) (c :: LINEAR). (Ob a, Ob b, Ob c) => ((a ** b) ~> Dual c) -> a ~> Dual (b ** c) Source Comments # linDistInv :: forall (a :: LINEAR) (b :: LINEAR) (c :: LINEAR). (Ob a, Ob b, Ob c) => (a ~> Dual (b ** c)) -> (a ** b) ~> Dual c Source Comments # | |||||||||
StarAutonomous () Source Comments # | |||||||||
Defined in Proarrow.Object.Dual Associated Types
Methods dual :: forall (a :: ()) (b :: ()). (a ~> b) -> Dual b ~> Dual a Source Comments # dualInv :: forall (a :: ()) (b :: ()). (Ob a, Ob b) => (Dual a ~> Dual b) -> b ~> a Source Comments # linDist :: forall (a :: ()) (b :: ()) (c :: ()). (Ob a, Ob b, Ob c) => ((a ** b) ~> Dual c) -> a ~> Dual (b ** c) Source Comments # linDistInv :: forall (a :: ()) (b :: ()) (c :: ()). (Ob a, Ob b, Ob c) => (a ~> Dual (b ** c)) -> (a ** b) ~> Dual c Source Comments # | |||||||||
(TracedMonoidal k, Ob (Unit :: k)) => StarAutonomous (INT k) Source Comments # | |||||||||
Defined in Proarrow.Category.Instance.IntConstruction Methods dual :: forall (a :: INT k) (b :: INT k). (a ~> b) -> Dual b ~> Dual a Source Comments # dualInv :: forall (a :: INT k) (b :: INT k). (Ob a, Ob b) => (Dual a ~> Dual b) -> b ~> a Source Comments # linDist :: forall (a :: INT k) (b :: INT k) (c :: INT k). (Ob a, Ob b, Ob c) => ((a ** b) ~> Dual c) -> a ~> Dual (b ** c) Source Comments # linDistInv :: forall (a :: INT k) (b :: INT k) (c :: INT k). (Ob a, Ob b, Ob c) => (a ~> Dual (b ** c)) -> (a ** b) ~> Dual c Source Comments # | |||||||||
Num a => StarAutonomous (MatK a) Source Comments # | |||||||||
Defined in Proarrow.Category.Instance.Mat Methods dual :: forall (a0 :: MatK a) (b :: MatK a). (a0 ~> b) -> Dual b ~> Dual a0 Source Comments # dualInv :: forall (a0 :: MatK a) (b :: MatK a). (Ob a0, Ob b) => (Dual a0 ~> Dual b) -> b ~> a0 Source Comments # linDist :: forall (a0 :: MatK a) (b :: MatK a) (c :: MatK a). (Ob a0, Ob b, Ob c) => ((a0 ** b) ~> Dual c) -> a0 ~> Dual (b ** c) Source Comments # linDistInv :: forall (a0 :: MatK a) (b :: MatK a) (c :: MatK a). (Ob a0, Ob b, Ob c) => (a0 ~> Dual (b ** c)) -> (a0 ** b) ~> Dual c Source Comments # | |||||||||
StarAutonomous (KLEISLI (Cont r)) Source Comments # | |||||||||
Defined in Proarrow.Promonad.Cont Methods dual :: forall (a :: KLEISLI (Cont r)) (b :: KLEISLI (Cont r)). (a ~> b) -> Dual b ~> Dual a Source Comments # dualInv :: forall (a :: KLEISLI (Cont r)) (b :: KLEISLI (Cont r)). (Ob a, Ob b) => (Dual a ~> Dual b) -> b ~> a Source Comments # linDist :: forall (a :: KLEISLI (Cont r)) (b :: KLEISLI (Cont r)) (c :: KLEISLI (Cont r)). (Ob a, Ob b, Ob c) => ((a ** b) ~> Dual c) -> a ~> Dual (b ** c) Source Comments # linDistInv :: forall (a :: KLEISLI (Cont r)) (b :: KLEISLI (Cont r)) (c :: KLEISLI (Cont r)). (Ob a, Ob b, Ob c) => (a ~> Dual (b ** c)) -> (a ** b) ~> Dual c Source Comments # | |||||||||
(StarAutonomous j, StarAutonomous k) => StarAutonomous (j, k) Source Comments # | |||||||||
Defined in Proarrow.Object.Dual Methods dual :: forall (a :: (j, k)) (b :: (j, k)). (a ~> b) -> Dual b ~> Dual a Source Comments # dualInv :: forall (a :: (j, k)) (b :: (j, k)). (Ob a, Ob b) => (Dual a ~> Dual b) -> b ~> a Source Comments # linDist :: forall (a :: (j, k)) (b :: (j, k)) (c :: (j, k)). (Ob a, Ob b, Ob c) => ((a ** b) ~> Dual c) -> a ~> Dual (b ** c) Source Comments # linDistInv :: forall (a :: (j, k)) (b :: (j, k)) (c :: (j, k)). (Ob a, Ob b, Ob c) => (a ~> Dual (b ** c)) -> (a ** b) ~> Dual c Source Comments # |
doubleNegInv :: forall {k} (a :: k). (StarAutonomous k, Ob a) => a ~> Dual (Dual a) Source Comments #
currySA :: forall {k} (a :: k) (b :: k) (c :: k). (StarAutonomous k, Ob a, Ob b) => ((a ** b) ~> c) -> a ~> ExpSA b c Source Comments #
uncurrySA :: forall {k} (a :: k) (b :: k) (c :: k). (StarAutonomous k, Ob b, Ob c) => (a ~> ExpSA b c) -> (a ** b) ~> c Source Comments #
expSA :: forall {k} (a :: k) (b :: k) (x :: k) (y :: k). StarAutonomous k => (b ~> y) -> (x ~> a) -> ExpSA a b ~> ExpSA x y Source Comments #
dualityUnitSA :: forall {k} (a :: k). (StarAutonomous k, Ob a) => (Unit :: k) ~> Dual (Dual a ** a) Source Comments #
dualityCounitSA :: forall {k} (a :: k). (StarAutonomous k, Ob a) => (Dual a ** a) ~> Dual (Unit :: k) Source Comments #
class (StarAutonomous k, SymMonoidal k) => CompactClosed k where Source Comments #
Methods
distribDual :: forall (a :: k) (b :: k). (Ob a, Ob b) => Dual (a ** b) ~> (Dual a ** Dual b) Source Comments #
dualUnit :: Dual (Unit :: k) ~> (Unit :: k) Source Comments #
Instances
CompactClosed KIND Source Comments # | |
CompactClosed () Source Comments # | |
(TracedMonoidal k, Ob (Unit :: k)) => CompactClosed (INT k) Source Comments # | |
Num a => CompactClosed (MatK a) Source Comments # | |
(CompactClosed j, CompactClosed k) => CompactClosed (j, k) Source Comments # | |
dualityUnit :: forall {k} (a :: k). (CompactClosed k, Ob a) => (Unit :: k) ~> (a ** Dual a) Source Comments #
dualityCounit :: forall {k} (a :: k). (CompactClosed k, Ob a) => (Dual a ** a) ~> (Unit :: k) Source Comments #
dualUnitInv :: CompactClosed k => (Unit :: k) ~> Dual (Unit :: k) Source Comments #