License | BSD-style (see the file LICENSE) |
---|---|
Maintainer | sjoerd@w3future.com |
Stability | experimental |
Portability | non-portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Synopsis
- class CartesianClosed (V k) => ECategory (k :: Type -> Type -> Type) where
- type Arr k a b = V k (TerminalObject (V k)) (k $ (a, b))
- compArr :: ECategory k => Obj k a -> Obj k b -> Obj k c -> Arr k b c -> Arr k a b -> Arr k a c
- data Underlying k a b = Underlying (Obj k a) (Arr k a b) (Obj k b)
- newtype EOp k a b = EOp (k b a)
- data (:<>:) :: (Type -> Type -> Type) -> (Type -> Type -> Type) -> Type -> Type -> Type where
- newtype Self v a b = Self {
- getSelf :: v a b
- toSelf :: CartesianClosed v => v a b -> Arr (Self v) a b
- fromSelf :: forall v a b. CartesianClosed v => Obj v a -> Obj v b -> Arr (Self v) a b -> v a b
- newtype InHask k a b = InHask (k a b)
Documentation
class CartesianClosed (V k) => ECategory (k :: Type -> Type -> Type) where Source #
An enriched category
type V k :: Type -> Type -> Type Source #
The category V which k is enriched in
The hom object in V from a to b
hom :: Obj k a -> Obj k b -> Obj (V k) (k $ (a, b)) Source #
id :: Obj k a -> Arr k a a Source #
comp :: Obj k a -> Obj k b -> Obj k c -> V k (BinaryProduct (V k) (k $ (b, c)) (k $ (a, b))) (k $ (a, c)) Source #
Instances
ECategory PosetTest Source # | |
Defined in Data.Category.Enriched.Poset3 hom :: Obj PosetTest a -> Obj PosetTest b -> Obj (V PosetTest) (PosetTest $ (a, b)) Source # id :: Obj PosetTest a -> Arr PosetTest a a Source # comp :: Obj PosetTest a -> Obj PosetTest b -> Obj PosetTest c -> V PosetTest (BinaryProduct (V PosetTest) (PosetTest $ (b, c)) (PosetTest $ (a, b))) (PosetTest $ (a, c)) Source # | |
ECategory k => ECategory (EOp k) Source # | The opposite of an enriched category |
Defined in Data.Category.Enriched | |
Category k => ECategory (InHask k) Source # | Any regular category is enriched in (->), aka Hask |
Defined in Data.Category.Enriched hom :: Obj (InHask k) a -> Obj (InHask k) b -> Obj (V (InHask k)) (InHask k $ (a, b)) Source # id :: Obj (InHask k) a -> Arr (InHask k) a a Source # comp :: Obj (InHask k) a -> Obj (InHask k) b -> Obj (InHask k) c -> V (InHask k) (BinaryProduct (V (InHask k)) (InHask k $ (b, c)) (InHask k $ (a, b))) (InHask k $ (a, c)) Source # | |
CartesianClosed v => ECategory (Self v) Source # | Self enrichment |
Defined in Data.Category.Enriched | |
(ECategory k1, ECategory k2, V k1 ~ V k2) => ECategory (k1 :<>: k2) Source # | The enriched product category of enriched categories |
Defined in Data.Category.Enriched hom :: Obj (k1 :<>: k2) a -> Obj (k1 :<>: k2) b -> Obj (V (k1 :<>: k2)) ((k1 :<>: k2) $ (a, b)) Source # id :: Obj (k1 :<>: k2) a -> Arr (k1 :<>: k2) a a Source # comp :: Obj (k1 :<>: k2) a -> Obj (k1 :<>: k2) b -> Obj (k1 :<>: k2) c -> V (k1 :<>: k2) (BinaryProduct (V (k1 :<>: k2)) ((k1 :<>: k2) $ (b, c)) ((k1 :<>: k2) $ (a, b))) ((k1 :<>: k2) $ (a, c)) Source # | |
(HasEnds (V a), CartesianClosed (V a), V a ~ V b) => ECategory (FunCat a b) Source # | The enriched functor category |
Defined in Data.Category.Enriched.Limit hom :: Obj (FunCat a b) a0 -> Obj (FunCat a b) b0 -> Obj (V (FunCat a b)) (FunCat a b $ (a0, b0)) Source # id :: Obj (FunCat a b) a0 -> Arr (FunCat a b) a0 a0 Source # comp :: Obj (FunCat a b) a0 -> Obj (FunCat a b) b0 -> Obj (FunCat a b) c -> V (FunCat a b) (BinaryProduct (V (FunCat a b)) (FunCat a b $ (b0, c)) (FunCat a b $ (a0, b0))) (FunCat a b $ (a0, c)) Source # |
compArr :: ECategory k => Obj k a -> Obj k b -> Obj k c -> Arr k b c -> Arr k a b -> Arr k a c Source #
data Underlying k a b Source #
Underlying (Obj k a) (Arr k a b) (Obj k b) |
Instances
ECategory k => Category (Underlying k :: Type -> Type -> Type) Source # | The underlying category of an enriched category |
Defined in Data.Category.Enriched src :: forall (a :: k0) (b :: k0). Underlying k a b -> Obj (Underlying k) a Source # tgt :: forall (a :: k0) (b :: k0). Underlying k a b -> Obj (Underlying k) b Source # (.) :: forall (b :: k0) (c :: k0) (a :: k0). Underlying k b c -> Underlying k a b -> Underlying k a c Source # |
EOp (k b a) |
data (:<>:) :: (Type -> Type -> Type) -> (Type -> Type -> Type) -> Type -> Type -> Type where Source #
Instances
(ECategory k1, ECategory k2, V k1 ~ V k2) => ECategory (k1 :<>: k2) Source # | The enriched product category of enriched categories |
Defined in Data.Category.Enriched hom :: Obj (k1 :<>: k2) a -> Obj (k1 :<>: k2) b -> Obj (V (k1 :<>: k2)) ((k1 :<>: k2) $ (a, b)) Source # id :: Obj (k1 :<>: k2) a -> Arr (k1 :<>: k2) a a Source # comp :: Obj (k1 :<>: k2) a -> Obj (k1 :<>: k2) b -> Obj (k1 :<>: k2) c -> V (k1 :<>: k2) (BinaryProduct (V (k1 :<>: k2)) ((k1 :<>: k2) $ (b, c)) ((k1 :<>: k2) $ (a, b))) ((k1 :<>: k2) $ (a, c)) Source # | |
type V (k1 :<>: k2) Source # | |
Defined in Data.Category.Enriched | |
type (k1 :<>: k2) $ ((a1, a2), (b1, b2)) Source # | |
Defined in Data.Category.Enriched |
Instances
CartesianClosed v => ECategory (Self v) Source # | Self enrichment |
Defined in Data.Category.Enriched | |
(HasEnds v, EFunctor w, ECod w ~ Self v) => HasLimits (Self v) w Source # | |
Defined in Data.Category.Enriched.Limit limitObj :: EFunctorOf (EDom w) (Self v) d => w -> d -> Obj (Self v) (Lim w d) Source # limit :: EFunctorOf (EDom w) (Self v) d => w -> d -> Obj (Self v) e -> V (Self v) (Self v $ (e, Lim w d)) (End (V (Self v)) (w :->>: (EHomX_ (Self v) e :.: d))) Source # limitInv :: EFunctorOf (EDom w) (Self v) d => w -> d -> Obj (Self v) e -> V (Self v) (End (V (Self v)) (w :->>: (EHomX_ (Self v) e :.: d))) (Self v $ (e, Lim w d)) Source # | |
type V (Self v) Source # | |
Defined in Data.Category.Enriched | |
type WeigtedLimit (Self v) w d Source # | |
Defined in Data.Category.Enriched.Limit | |
type (Self v) $ (a, b) Source # | |
Defined in Data.Category.Enriched |
fromSelf :: forall v a b. CartesianClosed v => Obj v a -> Obj v b -> Arr (Self v) a b -> v a b Source #
InHask (k a b) |