Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Documentation
Rel (a -> b -> s) |
Instances
Ring s => Category (Rel s :: Type -> Type -> Type) Source # | |
Ring s => Dagger (Rel s :: Type -> Type -> Type) Source # | |
Ring s => Braided ((⊕) :: Type -> Type -> Type) (Zero :: Type) (Rel s :: Type -> Type -> Type) Source # | |
Ring s => Braided ((⊗) :: Type -> Type -> Type) (One :: Type) (Rel s :: Type -> Type -> Type) Source # | |
Ring s => Cartesian ((⊕) :: Type -> Type -> Type) (Zero :: Type) (Rel s :: Type -> Type -> Type) Source # | |
Defined in Algebra.Category.Relation exl :: forall (a :: k) (b :: k). O2 (Rel s) a b => Rel s (a ⊕ b) a Source # exr :: forall (a :: k) (b :: k). O2 (Rel s) a b => Rel s (a ⊕ b) b Source # dis :: forall (a :: k). Obj (Rel s) a => Rel s a Zero Source # dup :: forall (a :: k). Obj (Rel s) a => Rel s a (a ⊕ a) Source # (▵) :: forall (a :: k) (b :: k) (c :: k). (Obj (Rel s) a, Obj (Rel s) b, Obj (Rel s) c) => Rel s a b -> Rel s a c -> Rel s a (b ⊕ c) Source # | |
Ring s => Cartesian ((⊗) :: Type -> Type -> Type) (One :: Type) (Rel s :: Type -> Type -> Type) Source # | |
Defined in Algebra.Category.Relation exl :: forall (a :: k) (b :: k). O2 (Rel s) a b => Rel s (a ⊗ b) a Source # exr :: forall (a :: k) (b :: k). O2 (Rel s) a b => Rel s (a ⊗ b) b Source # dis :: forall (a :: k). Obj (Rel s) a => Rel s a One Source # dup :: forall (a :: k). Obj (Rel s) a => Rel s a (a ⊗ a) Source # (▵) :: forall (a :: k) (b :: k) (c :: k). (Obj (Rel s) a, Obj (Rel s) b, Obj (Rel s) c) => Rel s a b -> Rel s a c -> Rel s a (b ⊗ c) Source # | |
Ring s => CoCartesian ((⊕) :: Type -> Type -> Type) (Zero :: Type) (Rel s :: Type -> Type -> Type) Source # | |
Defined in Algebra.Category.Relation inl :: forall (a :: k) (b :: k). O2 (Rel s) a b => Rel s a (a ⊕ b) Source # inr :: forall (a :: k) (b :: k). O2 (Rel s) a b => Rel s b (a ⊕ b) Source # new :: forall (a :: k). Obj (Rel s) a => Rel s Zero a Source # jam :: forall (a :: k). Obj (Rel s) a => Rel s (a ⊕ a) a Source # (▿) :: forall (a :: k) (b :: k) (c :: k). (Obj (Rel s) a, Obj (Rel s) b, Obj (Rel s) c) => Rel s b a -> Rel s c a -> Rel s (b ⊕ c) a Source # | |
Ring s => CoCartesian ((⊗) :: Type -> Type -> Type) (One :: Type) (Rel s :: Type -> Type -> Type) Source # | |
Defined in Algebra.Category.Relation inl :: forall (a :: k) (b :: k). O2 (Rel s) a b => Rel s a (a ⊗ b) Source # inr :: forall (a :: k) (b :: k). O2 (Rel s) a b => Rel s b (a ⊗ b) Source # new :: forall (a :: k). Obj (Rel s) a => Rel s One a Source # jam :: forall (a :: k). Obj (Rel s) a => Rel s (a ⊗ a) a Source # (▿) :: forall (a :: k) (b :: k) (c :: k). (Obj (Rel s) a, Obj (Rel s) b, Obj (Rel s) c) => Rel s b a -> Rel s c a -> Rel s (b ⊗ c) a Source # | |
Ring s => Monoidal ((⊕) :: Type -> Type -> Type) (Zero :: Type) (Rel s :: Type -> Type -> Type) Source # | |
Defined in Algebra.Category.Relation (⊗) :: forall (a :: k) (b :: k) (c :: k) (d :: k). (Obj (Rel s) a, Obj (Rel s) b, Obj (Rel s) c, Obj (Rel s) d) => Rel s a b -> Rel s c d -> Rel s (a ⊕ c) (b ⊕ d) Source # assoc :: forall (a :: k) (b :: k) (c :: k). (Obj (Rel s) a, Obj (Rel s) b, Obj (Rel s) c) => Rel s ((a ⊕ b) ⊕ c) (a ⊕ (b ⊕ c)) Source # assoc_ :: forall (a :: k) (b :: k) (c :: k). (Obj (Rel s) a, Obj (Rel s) b, Obj (Rel s) c) => Rel s (a ⊕ (b ⊕ c)) ((a ⊕ b) ⊕ c) Source # unitorR :: forall (a :: k). (Obj (Rel s) a, Obj (Rel s) Zero) => Rel s a (a ⊕ Zero) Source # unitorR_ :: forall (a :: k). (Obj (Rel s) a, Obj (Rel s) Zero) => Rel s (a ⊕ Zero) a Source # unitorL :: forall (a :: k). (Obj (Rel s) a, Obj (Rel s) Zero) => Rel s a (Zero ⊕ a) Source # unitorL_ :: forall (a :: k). (Obj (Rel s) a, Obj (Rel s) Zero) => Rel s (Zero ⊕ a) a Source # | |
Ring s => Monoidal ((⊗) :: Type -> Type -> Type) (One :: Type) (Rel s :: Type -> Type -> Type) Source # | |
Defined in Algebra.Category.Relation (⊗) :: forall (a :: k) (b :: k) (c :: k) (d :: k). (Obj (Rel s) a, Obj (Rel s) b, Obj (Rel s) c, Obj (Rel s) d) => Rel s a b -> Rel s c d -> Rel s (a ⊗ c) (b ⊗ d) Source # assoc :: forall (a :: k) (b :: k) (c :: k). (Obj (Rel s) a, Obj (Rel s) b, Obj (Rel s) c) => Rel s ((a ⊗ b) ⊗ c) (a ⊗ (b ⊗ c)) Source # assoc_ :: forall (a :: k) (b :: k) (c :: k). (Obj (Rel s) a, Obj (Rel s) b, Obj (Rel s) c) => Rel s (a ⊗ (b ⊗ c)) ((a ⊗ b) ⊗ c) Source # unitorR :: forall (a :: k). (Obj (Rel s) a, Obj (Rel s) One) => Rel s a (a ⊗ One) Source # unitorR_ :: forall (a :: k). (Obj (Rel s) a, Obj (Rel s) One) => Rel s (a ⊗ One) a Source # unitorL :: forall (a :: k). (Obj (Rel s) a, Obj (Rel s) One) => Rel s a (One ⊗ a) Source # unitorL_ :: forall (a :: k). (Obj (Rel s) a, Obj (Rel s) One) => Rel s (One ⊗ a) a Source # | |
Ring s => Symmetric ((⊕) :: Type -> Type -> Type) (Zero :: Type) (Rel s :: Type -> Type -> Type) Source # | |
Defined in Algebra.Category.Relation | |
Ring s => Symmetric ((⊗) :: Type -> Type -> Type) (One :: Type) (Rel s :: Type -> Type -> Type) Source # | |
Defined in Algebra.Category.Relation | |
Ring s => Compact ((⊗) :: Type -> Type -> Type) (One :: Type) (Dual :: Type -> Type) (Rel s :: Type -> Type -> Type) Source # | |
Defined in Algebra.Category.Relation | |
Ring s => Autonomous ((⊗) :: Type -> Type -> Type) (One :: Type) (Dual :: Type -> Type) (Dual :: Type -> Type) (Rel s :: Type -> Type -> Type) Source # | |
Additive s => Additive (Rel s a b) Source # | |
type Obj (Rel s :: Type -> Type -> Type) Source # | |