Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- type O2 k a b = (Obj k a, Obj k b)
- type O3 k a b c = (Obj k a, Obj k b, Obj k c)
- type O4 k a b c d = (Obj k a, Obj k b, Obj k c, Obj k d)
- type family All (c :: k -> Constraint) (xs :: [k]) :: Constraint where ...
- class Trivial a
- class Category k where
- (.) :: (Category k, O3 k a b c) => k b c -> k a b -> k a c
- class ProdObj con where
- objProd :: forall k a b z. (z ~ (a ⊗ b), Obj k z, Monoidal k) => Dict (Obj k a, Obj k b)
- prodObj :: forall k a b. (Monoidal k, Obj k a, Obj k b) => Dict (Obj k (a ⊗ b))
- unitObj :: forall k. Monoidal k => Dict (Obj k ())
- (//) :: Dict c -> (c => k) -> k
- type (⊗) a b = (a, b)
- class (ProdObj (Obj k), Category k) => Monoidal k where
- (×) :: (Obj k a, Obj k b, Obj k c, Obj k d) => (a `k` b) -> (c `k` d) -> (a ⊗ c) `k` (b ⊗ d)
- swap :: (Obj k a, Obj k b) => (a ⊗ b) `k` (b ⊗ a)
- assoc :: (Obj k a, Obj k b, Obj k c) => ((a ⊗ b) ⊗ c) `k` (a ⊗ (b ⊗ c))
- assoc' :: (Obj k a, Obj k b, Obj k c) => (a ⊗ (b ⊗ c)) `k` ((a ⊗ b) ⊗ c)
- unitor :: Obj k a => a `k` (a ⊗ ())
- unitor' :: Obj k a => (a ⊗ ()) `k` a
- class Monoidal k => Cartesian k where
- disDefault :: forall k a. (Cartesian k, Obj k a) => a `k` ()
- exlDefault :: forall k a b. (Cartesian k, O2 k a b) => (a ⊗ b) `k` a
- exrDefault :: forall k a b. (Cartesian k, O2 k a b) => (a ⊗ b) `k` b
- (▵!) :: forall k a b c. (Cartesian k, O3 k a b c) => (a `k` b) -> (a `k` c) -> a `k` (b ⊗ c)
- cartesianCross :: (Obj k (b1 ⊗ b2), Obj k b3, Obj k c, Obj k b1, Obj k b2, Cartesian k) => k b1 b3 -> k b2 c -> k (b1 ⊗ b2) (b3 ⊗ c)
- cartesianUnitor :: forall a k. (Obj k a, Obj k (), Cartesian k) => a `k` (a ⊗ ())
- cartesianUnitor' :: forall a k. (Obj k a, Obj k (), Cartesian k) => (a ⊗ ()) `k` a
- cartesianSwap :: forall a b k. (Obj k a, Obj k b, Cartesian k) => (a ⊗ b) `k` (b ⊗ a)
- cartesianAssoc :: forall a b c k. (Obj k a, Obj k b, Obj k c, Cartesian k) => ((a ⊗ b) ⊗ c) `k` (a ⊗ (b ⊗ c))
- cartesianAssoc' :: forall a b c k. (Obj k a, Obj k b, Obj k c, Cartesian k) => (a ⊗ (b ⊗ c)) `k` ((a ⊗ b) ⊗ c)
- class Monoidal k => CoCartesian k where
- jamDefault :: (Obj k a, CoCartesian k) => (a ⊗ a) `k` a
- newDefault :: forall k a. (Obj k a, CoCartesian k) => () `k` a
- (▿!) :: forall k a b c. (O3 k a b c, CoCartesian k) => (b `k` a) -> (c `k` a) -> (b ⊗ c) `k` a
- transp :: forall a b c d k con. (con ~ Obj k, Monoidal k, O4 k a b c d, forall α β. (con α, con β) => con (α, β)) => ((a, b) ⊗ (c, d)) `k` ((a, c) ⊗ (b, d))
- class Cartesian k => Closed k where
- class Invertible k where
- dual :: (a `k` b) -> b `k` a
- type Hopf k = (Cartesian k, CoCartesian k)
- type Comparator k = forall a b b'. k a b -> k a b' -> Maybe (b :~: b')
- class Category k => HasCompare k where
- compareMorphs :: Comparator k
- data Order a b where
Documentation
type family All (c :: k -> Constraint) (xs :: [k]) :: Constraint where ... Source #
Instances
Trivial (a :: k) Source # | |
Defined in Control.Category.Constrained | |
ProdObj (Trivial :: Type -> Constraint) Source # | |
class Category k where Source #
id :: Obj k a => a `k` a Source #
(∘) :: (Obj k a, Obj k b, Obj k c) => (b `k` c) -> (a `k` b) -> a `k` c infixl 8 Source #
Instances
class (ProdObj (Obj k), Category k) => Monoidal k where Source #
(×) :: (Obj k a, Obj k b, Obj k c, Obj k d) => (a `k` b) -> (c `k` d) -> (a ⊗ c) `k` (b ⊗ d) Source #
swap :: (Obj k a, Obj k b) => (a ⊗ b) `k` (b ⊗ a) Source #
assoc :: (Obj k a, Obj k b, Obj k c) => ((a ⊗ b) ⊗ c) `k` (a ⊗ (b ⊗ c)) Source #
assoc' :: (Obj k a, Obj k b, Obj k c) => (a ⊗ (b ⊗ c)) `k` ((a ⊗ b) ⊗ c) Source #
Instances
Monoidal (FUN m :: TYPE LiftedRep -> TYPE LiftedRep -> Type) Source # | |
Defined in Control.Category.Constrained (×) :: (Obj (FUN m) a, Obj (FUN m) b, Obj (FUN m) c, Obj (FUN m) d) => FUN m a b -> FUN m c d -> FUN m (a ⊗ c) (b ⊗ d) Source # swap :: (Obj (FUN m) a, Obj (FUN m) b) => FUN m (a ⊗ b) (b ⊗ a) Source # assoc :: (Obj (FUN m) a, Obj (FUN m) b, Obj (FUN m) c) => FUN m ((a ⊗ b) ⊗ c) (a ⊗ (b ⊗ c)) Source # assoc' :: (Obj (FUN m) a, Obj (FUN m) b, Obj (FUN m) c) => FUN m (a ⊗ (b ⊗ c)) ((a ⊗ b) ⊗ c) Source # |
class Monoidal k => Cartesian k where Source #
exl :: forall a b. O2 k a b => (a ⊗ b) `k` a Source #
exr :: forall a b. O2 k a b => (a ⊗ b) `k` b Source #
dis :: forall a. Obj k a => a `k` () Source #
dup :: (Obj k a, Obj k (a ⊗ a)) => a `k` (a ⊗ a) Source #
(▵) :: forall a b c. (Obj k a, Obj k b, Obj k c) => (a `k` b) -> (a `k` c) -> a `k` (b ⊗ c) Source #
Instances
Cartesian (->) Source # | |
Defined in Control.Category.Constrained |
disDefault :: forall k a. (Cartesian k, Obj k a) => a `k` () Source #
(▵!) :: forall k a b c. (Cartesian k, O3 k a b c) => (a `k` b) -> (a `k` c) -> a `k` (b ⊗ c) Source #
cartesianCross :: (Obj k (b1 ⊗ b2), Obj k b3, Obj k c, Obj k b1, Obj k b2, Cartesian k) => k b1 b3 -> k b2 c -> k (b1 ⊗ b2) (b3 ⊗ c) Source #
cartesianAssoc :: forall a b c k. (Obj k a, Obj k b, Obj k c, Cartesian k) => ((a ⊗ b) ⊗ c) `k` (a ⊗ (b ⊗ c)) Source #
cartesianAssoc' :: forall a b c k. (Obj k a, Obj k b, Obj k c, Cartesian k) => (a ⊗ (b ⊗ c)) `k` ((a ⊗ b) ⊗ c) Source #
class Monoidal k => CoCartesian k where Source #
jamDefault :: (Obj k a, CoCartesian k) => (a ⊗ a) `k` a Source #
newDefault :: forall k a. (Obj k a, CoCartesian k) => () `k` a Source #
(▿!) :: forall k a b c. (O3 k a b c, CoCartesian k) => (b `k` a) -> (c `k` a) -> (b ⊗ c) `k` a Source #
transp :: forall a b c d k con. (con ~ Obj k, Monoidal k, O4 k a b c d, forall α β. (con α, con β) => con (α, β)) => ((a, b) ⊗ (c, d)) `k` ((a, c) ⊗ (b, d)) Source #
type Hopf k = (Cartesian k, CoCartesian k) Source #
type Comparator k = forall a b b'. k a b -> k a b' -> Maybe (b :~: b') Source #
class Category k => HasCompare k where Source #
compareMorphs :: Comparator k Source #