Safe Haskell | None |
---|---|
Language | Haskell2010 |
Proarrow.Object.BinaryProduct
Contents
Documentation
class CategoryOf k => HasBinaryProducts k where Source Comments #
Methods
fst' :: forall (a :: k) (b :: k). Obj a -> Obj b -> (a && b) ~> a Source Comments #
snd' :: forall (a :: k) (b :: k). Obj a -> Obj b -> (a && b) ~> b Source Comments #
(&&&) :: forall (a :: k) (x :: k) (y :: k). (a ~> x) -> (a ~> y) -> a ~> (x && y) infixl 5 Source Comments #
(***) :: forall (a :: k) (b :: k) (x :: k) (y :: k). (a ~> x) -> (b ~> y) -> (a && b) ~> (x && y) infixl 5 Source Comments #
Instances
HasBinaryProducts BOOL Source Comments # | |||||||||||||||||
Defined in Proarrow.Category.Instance.Bool Associated Types
Methods fst' :: forall (a :: BOOL) (b :: BOOL). Obj a -> Obj b -> (a && b) ~> a Source Comments # snd' :: forall (a :: BOOL) (b :: BOOL). Obj a -> Obj b -> (a && b) ~> b Source Comments # (&&&) :: forall (a :: BOOL) (x :: BOOL) (y :: BOOL). (a ~> x) -> (a ~> y) -> a ~> (x && y) Source Comments # (***) :: forall (a :: BOOL) (b :: BOOL) (x :: BOOL) (y :: BOOL). (a ~> x) -> (b ~> y) -> (a && b) ~> (x && y) Source Comments # | |||||||||||||||||
HasBinaryProducts KIND Source Comments # | |||||||||||||||||
Defined in Proarrow.Category.Instance.Cat Methods fst' :: forall (a :: KIND) (b :: KIND). Obj a -> Obj b -> (a && b) ~> a Source Comments # snd' :: forall (a :: KIND) (b :: KIND). Obj a -> Obj b -> (a && b) ~> b Source Comments # (&&&) :: forall (a :: KIND) (x :: KIND) (y :: KIND). (a ~> x) -> (a ~> y) -> a ~> (x && y) Source Comments # (***) :: forall (a :: KIND) (b :: KIND) (x :: KIND) (y :: KIND). (a ~> x) -> (b ~> y) -> (a && b) ~> (x && y) Source Comments # | |||||||||||||||||
HasBinaryProducts CONSTRAINT Source Comments # | |||||||||||||||||
Defined in Proarrow.Category.Instance.Constraint Associated Types
Methods fst' :: forall (a :: CONSTRAINT) (b :: CONSTRAINT). Obj a -> Obj b -> (a && b) ~> a Source Comments # snd' :: forall (a :: CONSTRAINT) (b :: CONSTRAINT). Obj a -> Obj b -> (a && b) ~> b Source Comments # (&&&) :: forall (a :: CONSTRAINT) (x :: CONSTRAINT) (y :: CONSTRAINT). (a ~> x) -> (a ~> y) -> a ~> (x && y) Source Comments # (***) :: forall (a :: CONSTRAINT) (b :: CONSTRAINT) (x :: CONSTRAINT) (y :: CONSTRAINT). (a ~> x) -> (b ~> y) -> (a && b) ~> (x && y) Source Comments # | |||||||||||||||||
HasBinaryProducts UNIT Source Comments # | |||||||||||||||||
Defined in Proarrow.Object.BinaryProduct Methods fst' :: forall (a :: UNIT) (b :: UNIT). Obj a -> Obj b -> (a && b) ~> a Source Comments # snd' :: forall (a :: UNIT) (b :: UNIT). Obj a -> Obj b -> (a && b) ~> b Source Comments # (&&&) :: forall (a :: UNIT) (x :: UNIT) (y :: UNIT). (a ~> x) -> (a ~> y) -> a ~> (x && y) Source Comments # (***) :: forall (a :: UNIT) (b :: UNIT) (x :: UNIT) (y :: UNIT). (a ~> x) -> (b ~> y) -> (a && b) ~> (x && y) Source Comments # | |||||||||||||||||
HasBinaryProducts Type Source Comments # | |||||||||||||||||
Defined in Proarrow.Object.BinaryProduct Associated Types
| |||||||||||||||||
HasBinaryCoproducts k => HasBinaryProducts (OPPOSITE k) Source Comments # | |||||||||||||||||
Defined in Proarrow.Category.Opposite Methods fst' :: forall (a :: OPPOSITE k) (b :: OPPOSITE k). Obj a -> Obj b -> (a && b) ~> a Source Comments # snd' :: forall (a :: OPPOSITE k) (b :: OPPOSITE k). Obj a -> Obj b -> (a && b) ~> b Source Comments # (&&&) :: forall (a :: OPPOSITE k) (x :: OPPOSITE k) (y :: OPPOSITE k). (a ~> x) -> (a ~> y) -> a ~> (x && y) Source Comments # (***) :: forall (a :: OPPOSITE k) (b :: OPPOSITE k) (x :: OPPOSITE k) (y :: OPPOSITE k). (a ~> x) -> (b ~> y) -> (a && b) ~> (x && y) Source Comments # | |||||||||||||||||
HasBinaryProducts k => HasBinaryProducts (PROD k) Source Comments # | |||||||||||||||||
Defined in Proarrow.Object.BinaryProduct Methods fst' :: forall (a :: PROD k) (b :: PROD k). Obj a -> Obj b -> (a && b) ~> a Source Comments # snd' :: forall (a :: PROD k) (b :: PROD k). Obj a -> Obj b -> (a && b) ~> b Source Comments # (&&&) :: forall (a :: PROD k) (x :: PROD k) (y :: PROD k). (a ~> x) -> (a ~> y) -> a ~> (x && y) Source Comments # (***) :: forall (a :: PROD k) (b :: PROD k) (x :: PROD k) (y :: PROD k). (a ~> x) -> (b ~> y) -> (a && b) ~> (x && y) Source Comments # | |||||||||||||||||
(CategoryOf j, CategoryOf k) => HasBinaryProducts (PRO j k) Source Comments # | |||||||||||||||||
Defined in Proarrow.Object.BinaryProduct Methods fst' :: forall (a :: PRO j k) (b :: PRO j k). Obj a -> Obj b -> (a && b) ~> a Source Comments # snd' :: forall (a :: PRO j k) (b :: PRO j k). Obj a -> Obj b -> (a && b) ~> b Source Comments # (&&&) :: forall (a :: PRO j k) (x :: PRO j k) (y :: PRO j k). (a ~> x) -> (a ~> y) -> a ~> (x && y) Source Comments # (***) :: forall (a :: PRO j k) (b :: PRO j k) (x :: PRO j k) (y :: PRO j k). (a ~> x) -> (b ~> y) -> (a && b) ~> (x && y) Source Comments # | |||||||||||||||||
(HasBinaryProducts j, HasBinaryProducts k) => HasBinaryProducts (j, k) Source Comments # | |||||||||||||||||
Defined in Proarrow.Object.BinaryProduct Methods fst' :: forall (a :: (j, k)) (b :: (j, k)). Obj a -> Obj b -> (a && b) ~> a Source Comments # snd' :: forall (a :: (j, k)) (b :: (j, k)). Obj a -> Obj b -> (a && b) ~> b Source Comments # (&&&) :: forall (a :: (j, k)) (x :: (j, k)) (y :: (j, k)). (a ~> x) -> (a ~> y) -> a ~> (x && y) Source Comments # (***) :: forall (a :: (j, k)) (b :: (j, k)) (x :: (j, k)) (y :: (j, k)). (a ~> x) -> (b ~> y) -> (a && b) ~> (x && y) Source Comments # |
fst :: forall {k} (a :: k) (b :: k). (HasBinaryProducts k, Ob a, Ob b) => (a && b) ~> a Source Comments #
snd :: forall {k} (a :: k) (b :: k). (HasBinaryProducts k, Ob a, Ob b) => (a && b) ~> b Source Comments #
first :: forall {k} (c :: k) (a :: k) (b :: k). (HasBinaryProducts k, Ob c) => (a ~> b) -> (a && c) ~> (b && c) Source Comments #
second :: forall {k} (c :: k) (a :: k) (b :: k). (HasBinaryProducts k, Ob c) => (a ~> b) -> (c && a) ~> (c && b) Source Comments #
type HasProducts k = (HasTerminalObject k, HasBinaryProducts k) Source Comments #
class (a ** b) ~ (a && b) => TensorIsProduct (a :: k) (b :: k) Source Comments #
Instances
(a ** b) ~ (a && b) => TensorIsProduct (a :: k) (b :: k) Source Comments # | |
Defined in Proarrow.Object.BinaryProduct |
class (HasProducts k, Monoidal k, (Unit :: k) ~ (TerminalObject :: k), forall (a :: k) (b :: k). TensorIsProduct a b) => Cartesian k Source Comments #
Instances
(HasProducts k, Monoidal k, (Unit :: k) ~ (TerminalObject :: k), forall (a :: k) (b :: k). TensorIsProduct a b) => Cartesian k Source Comments # | |
Defined in Proarrow.Object.BinaryProduct |
leftUnitorProd :: forall k (a :: k). HasProducts k => Obj a -> ((TerminalObject :: k) && a) ~> a Source Comments #
leftUnitorProdInv :: forall k (a :: k). HasProducts k => Obj a -> a ~> ((TerminalObject :: k) && a) Source Comments #
rightUnitorProd :: forall k (a :: k). HasProducts k => Obj a -> (a && (TerminalObject :: k)) ~> a Source Comments #
rightUnitorProdInv :: forall k (a :: k). HasProducts k => Obj a -> a ~> (a && (TerminalObject :: k)) Source Comments #
associatorProd :: forall k (a :: k) (b :: k) (c :: k). HasProducts k => Obj a -> Obj b -> Obj c -> ((a && b) && c) ~> (a && (b && c)) Source Comments #
associatorProdInv :: forall k (a :: k) (b :: k) (c :: k). HasProducts k => Obj a -> Obj b -> Obj c -> (a && (b && c)) ~> ((a && b) && c) Source Comments #
swapProd :: forall {k} (a :: k) (b :: k). HasBinaryProducts k => Obj a -> Obj b -> (a && b) ~> (b && a) Source Comments #
newtype PROD k Source Comments #
Constructors
PR k |
Instances
data Prod (a :: PROD k) (b :: PROD k) where Source Comments #
Constructors
Prod :: forall {k} (a :: PROD k) (b :: PROD k). (Ob a, Ob b) => (UN ('PR :: k -> PROD k) a ~> UN ('PR :: k -> PROD k) b) -> Prod a b |
mkProd :: forall k (a :: k) (b :: k). CategoryOf k => (a ~> b) -> Prod ('PR a) ('PR b) Source Comments #
Orphan instances
Monoidal UNIT Source Comments # | |||||||||
Associated Types
Methods par :: forall (a :: UNIT) (b :: UNIT) (c :: UNIT) (d :: UNIT). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments # leftUnitor :: forall (a :: UNIT). Obj a -> ((Unit :: UNIT) ** a) ~> a Source Comments # leftUnitorInv :: forall (a :: UNIT). Obj a -> a ~> ((Unit :: UNIT) ** a) Source Comments # rightUnitor :: forall (a :: UNIT). Obj a -> (a ** (Unit :: UNIT)) ~> a Source Comments # rightUnitorInv :: forall (a :: UNIT). Obj a -> a ~> (a ** (Unit :: UNIT)) Source Comments # associator :: forall (a :: UNIT) (b :: UNIT) (c :: UNIT). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments # associatorInv :: forall (a :: UNIT) (b :: UNIT) (c :: UNIT). Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments # | |||||||||
Monoidal Type Source Comments # | |||||||||
Associated Types
Methods par :: (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments # leftUnitor :: Obj a -> ((Unit :: Type) ** a) ~> a Source Comments # leftUnitorInv :: Obj a -> a ~> ((Unit :: Type) ** a) Source Comments # rightUnitor :: Obj a -> (a ** (Unit :: Type)) ~> a Source Comments # rightUnitorInv :: Obj a -> a ~> (a ** (Unit :: Type)) Source Comments # associator :: Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments # associatorInv :: Obj a -> Obj b -> Obj c -> (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments # | |||||||||
SymMonoidal UNIT Source Comments # | |||||||||
SymMonoidal Type Source Comments # | |||||||||
MonoidalProfunctor Unit Source Comments # | |||||||||
MonoidalProfunctor (->) Source Comments # | |||||||||