| License | BSD-style (see the file LICENSE) |
|---|---|
| Maintainer | sjoerd@w3future.com |
| Stability | experimental |
| Portability | non-portable |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.Category.Enriched
Description
Synopsis
- class CartesianClosed (V k) => ECategory (k :: * -> * -> *) where
- type Elem k = TerminalObject (V k) :*-: V k
- elem :: CartesianClosed (V k) => Elem k
- type Arr k a b = Elem 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 (:<>:) :: (* -> * -> *) -> (* -> * -> *) -> * -> * -> * 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)
- class (ECategory (EDom ftag), ECategory (ECod ftag), V (EDom ftag) ~ V (ECod ftag)) => EFunctor ftag where
- type EFunctorOf a b t = (EFunctor t, EDom t ~ a, ECod t ~ b)
- data Id (k :: * -> * -> *) = Id
- data g :.: h where
- data Const (c1 :: * -> * -> *) (c2 :: * -> * -> *) x where
- data Opposite f where
- data f1 :<*>: f2 = f1 :<*>: f2
- data DiagProd (k :: * -> * -> *) = DiagProd
- newtype UnderlyingF f = UnderlyingF f
- data EHom (k :: * -> * -> *) = EHom
- data ENat :: (* -> * -> *) -> (* -> * -> *) -> * -> * -> * where
- ENat :: (EFunctorOf c d f, EFunctorOf c d g) => f -> g -> (forall z. Obj c z -> Arr d (f :%% z) (g :%% z)) -> ENat c d f g
- data EHomX_ k x = EHomX_ (Obj k x)
- data EHom_X k x = EHom_X (Obj (EOp k) x)
- type VProfunctor k l t = EFunctorOf (EOp k :<>: l) (Self (V k)) t
- type family End (v :: * -> * -> *) t :: *
- class CartesianClosed v => HasEnds v where
- end :: (VProfunctor k k t, V k ~ v) => t -> Obj v (End v t)
- endCounit :: (VProfunctor k k t, V k ~ v) => t -> Obj k a -> v (End v t) (t :%% (a, a))
- endFactorizer :: (VProfunctor k k t, V k ~ v) => t -> (forall a. Obj k a -> v x (t :%% (a, a))) -> v x (End v t)
- newtype HaskEnd t = HaskEnd {
- getHaskEnd :: forall k a. VProfunctor k k t => t -> Obj k a -> t :%% (a, a)
- data FunCat a b t s where
- FArr :: (EFunctorOf a b t, EFunctorOf a b s) => t -> s -> FunCat a b t s
- type (:->>:) t s = EHom (ECod t) :.: (Opposite t :<*>: s)
- (->>) :: (EFunctor t, EFunctor s, ECod t ~ ECod s, V (ECod t) ~ V (ECod s)) => t -> s -> t :->>: s
- data EndFunctor (k :: * -> * -> *) = EndFunctor
- type family WeigtedLimit (k :: * -> * -> *) w d :: *
- type Lim w d = WeigtedLimit (ECod d) w d
- class HasEnds (V k) => HasLimits k where
- limitObj :: (EFunctorOf j k d, EFunctorOf j (Self (V k)) w) => w -> d -> Obj k (Lim w d)
- limit :: (EFunctorOf j k d, EFunctorOf j (Self (V k)) w) => w -> d -> Obj k e -> V k (End (V k) (w :->>: (EHomX_ k e :.: d))) (k $ (e, Lim w d))
- limitInv :: (EFunctorOf j k d, EFunctorOf j (Self (V k)) w) => w -> d -> Obj k e -> V k (k $ (e, Lim w d)) (End (V k) (w :->>: (EHomX_ k e :.: d)))
- type family WeigtedColimit (k :: * -> * -> *) w d :: *
- type Colim w d = WeigtedColimit (ECod d) w d
- class HasEnds (V k) => HasColimits k where
- colimitObj :: (EFunctorOf j k d, EFunctorOf (EOp j) (Self (V k)) w) => w -> d -> Obj k (Colim w d)
- colimit :: (EFunctorOf j k d, EFunctorOf (EOp j) (Self (V k)) w) => w -> d -> Obj k e -> V k (End (V k) (w :->>: (EHom_X k e :.: Opposite d))) (k $ (Colim w d, e))
- colimitInv :: (EFunctorOf j k d, EFunctorOf (EOp j) (Self (V k)) w) => w -> d -> Obj k e -> V k (k $ (Colim w d, e)) (End (V k) (w :->>: (EHom_X k e :.: Opposite d)))
- yoneda :: forall f k x. (HasEnds (V k), EFunctorOf k (Self (V k)) f) => f -> Obj k x -> V k (End (V k) (EHomX_ k x :->>: f)) (f :%% x)
- yonedaInv :: forall f k x. (HasEnds (V k), EFunctorOf k (Self (V k)) f) => f -> Obj k x -> V k (f :%% x) (End (V k) (EHomX_ k x :->>: f))
- data Y (k :: * -> * -> *) = Y
- data One
- data Two
- data Three
- data PosetTest a b where
- type family Poset3 a b where ...
Documentation
class CartesianClosed (V k) => ECategory (k :: * -> * -> *) where #
An enriched category
Associated Types
The tensor product of the category V which k is enriched in
The hom object in V from a to b
Methods
hom :: Obj k a -> Obj k b -> Obj (V k) (k $ (a, b)) #
comp :: Obj k a -> Obj k b -> Obj k c -> V k (BinaryProduct (V k) (k $ (b, c)) (k $ (a, b))) (k $ (a, c)) #
Instances
| ECategory PosetTest # | |
Defined in Data.Category.Enriched Methods hom :: Obj PosetTest a -> Obj PosetTest b -> Obj (V PosetTest) (PosetTest $ (a, b)) # id :: Obj PosetTest a -> Arr PosetTest a a # comp :: Obj PosetTest a -> Obj PosetTest b -> Obj PosetTest c -> V PosetTest (BinaryProduct (V PosetTest) (PosetTest $ (b, c)) (PosetTest $ (a, b))) (PosetTest $ (a, c)) # | |
| Category k => ECategory (InHask k) # | Any regular category is enriched in (->), aka Hask |
Defined in Data.Category.Enriched Methods hom :: Obj (InHask k) a -> Obj (InHask k) b -> Obj (V (InHask k)) (InHask k $ (a, b)) # id :: Obj (InHask k) a -> Arr (InHask k) a a # 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)) # | |
| CartesianClosed v => ECategory (Self v) # | Self enrichment |
Defined in Data.Category.Enriched | |
| ECategory k => ECategory (EOp k) # | The opposite of an enriched category |
Defined in Data.Category.Enriched | |
| (HasEnds (V a), V a ~ V b) => ECategory (FunCat a b) # | The enriched functor category |
Defined in Data.Category.Enriched Methods hom :: Obj (FunCat a b) a0 -> Obj (FunCat a b) b0 -> Obj (V (FunCat a b)) (FunCat a b $ (a0, b0)) # id :: Obj (FunCat a b) a0 -> Arr (FunCat a b) a0 a0 # 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)) # | |
| (ECategory k1, ECategory k2, V k1 ~ V k2) => ECategory (k1 :<>: k2) # | The enriched product category of enriched categories |
Defined in Data.Category.Enriched Methods hom :: Obj (k1 :<>: k2) a -> Obj (k1 :<>: k2) b -> Obj (V (k1 :<>: k2)) ((k1 :<>: k2) $ (a, b)) # id :: Obj (k1 :<>: k2) a -> Arr (k1 :<>: k2) a a # 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)) # | |
elem :: CartesianClosed (V k) => Elem k #
data Underlying k a b #
Constructors
| Underlying (Obj k a) (Arr k a b) (Obj k b) |
Instances
| ECategory k => Category (Underlying k :: Type -> Type -> Type) # | The underlying category of an enriched category |
Defined in Data.Category.Enriched Methods src :: forall (a :: k0) (b :: k0). Underlying k a b -> Obj (Underlying k) a # tgt :: forall (a :: k0) (b :: k0). Underlying k a b -> Obj (Underlying k) b # (.) :: forall (b :: k0) (c :: k0) (a :: k0). Underlying k b c -> Underlying k a b -> Underlying k a c # | |
Constructors
| EOp (k b a) |
Instances
| ECategory k => ECategory (EOp k) # | The opposite of an enriched category |
Defined in Data.Category.Enriched | |
| type V (EOp k) # | |
Defined in Data.Category.Enriched | |
| type (EOp k) $ (a, b) # | |
Defined in Data.Category.Enriched | |
data (:<>:) :: (* -> * -> *) -> (* -> * -> *) -> * -> * -> * where #
Instances
| (ECategory k1, ECategory k2, V k1 ~ V k2) => ECategory (k1 :<>: k2) # | The enriched product category of enriched categories |
Defined in Data.Category.Enriched Methods hom :: Obj (k1 :<>: k2) a -> Obj (k1 :<>: k2) b -> Obj (V (k1 :<>: k2)) ((k1 :<>: k2) $ (a, b)) # id :: Obj (k1 :<>: k2) a -> Arr (k1 :<>: k2) a a # 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)) # | |
| type V (k1 :<>: k2) # | |
Defined in Data.Category.Enriched | |
| type (k1 :<>: k2) $ ((a1, a2), (b1, b2)) # | |
Defined in Data.Category.Enriched | |
Instances
| HasEnds v => HasLimits (Self v) # | |
Defined in Data.Category.Enriched Methods limitObj :: forall (j :: Type -> Type -> Type) d w. (EFunctorOf j (Self v) d, EFunctorOf j (Self (V (Self v))) w) => w -> d -> Obj (Self v) (Lim w d) # limit :: forall (j :: Type -> Type -> Type) d w e. (EFunctorOf j (Self v) d, EFunctorOf j (Self (V (Self v))) w) => 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)) # limitInv :: forall (j :: Type -> Type -> Type) d w e. (EFunctorOf j (Self v) d, EFunctorOf j (Self (V (Self v))) w) => 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))) # | |
| CartesianClosed v => ECategory (Self v) # | Self enrichment |
Defined in Data.Category.Enriched | |
| type V (Self v) # | |
Defined in Data.Category.Enriched | |
| type WeigtedLimit (Self v) w d # | |
Defined in Data.Category.Enriched | |
| type (Self v) $ (a, b) # | |
Defined in Data.Category.Enriched | |
toSelf :: CartesianClosed v => v a b -> Arr (Self v) a b #
Constructors
| InHask (k a b) |
Instances
| Category k => ECategory (InHask k) # | Any regular category is enriched in (->), aka Hask |
Defined in Data.Category.Enriched Methods hom :: Obj (InHask k) a -> Obj (InHask k) b -> Obj (V (InHask k)) (InHask k $ (a, b)) # id :: Obj (InHask k) a -> Arr (InHask k) a a # 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)) # | |
| type V (InHask k) # | |
Defined in Data.Category.Enriched | |
| type (InHask k) $ (a, b) # | |
Defined in Data.Category.Enriched | |
class (ECategory (EDom ftag), ECategory (ECod ftag), V (EDom ftag) ~ V (ECod ftag)) => EFunctor ftag where #
Enriched functors.
Associated Types
type EDom ftag :: * -> * -> * #
The domain, or source category, of the functor.
type ECod ftag :: * -> * -> * #
The codomain, or target category, of the functor.
:%% maps objects at the type level
Methods
(%%) :: ftag -> Obj (EDom ftag) a -> Obj (ECod ftag) (ftag :%% a) #
%% maps object at the value level
map :: EDom ftag ~ k => ftag -> Obj k a -> Obj k b -> V k (k $ (a, b)) (ECod ftag $ (ftag :%% a, ftag :%% b)) #
map maps arrows.
Instances
| (ECategory k, HasEnds (V k)) => EFunctor (Y k) # | Yoneda embedding |
| (HasEnds (V k), ECategory k) => EFunctor (EndFunctor k) # | |
Defined in Data.Category.Enriched Associated Types type EDom (EndFunctor k) :: Type -> Type -> Type # type ECod (EndFunctor k) :: Type -> Type -> Type # type (EndFunctor k) :%% a # Methods (%%) :: EndFunctor k -> Obj (EDom (EndFunctor k)) a -> Obj (ECod (EndFunctor k)) (EndFunctor k :%% a) # map :: EDom (EndFunctor k) ~ k0 => EndFunctor k -> Obj k0 a -> Obj k0 b -> V k0 (k0 $ (a, b)) (ECod (EndFunctor k) $ (EndFunctor k :%% a, EndFunctor k :%% b)) # | |
| ECategory k => EFunctor (EHom k) # | |
| ECategory k => EFunctor (DiagProd k) # |
|
| EFunctor f => EFunctor (Opposite f) # | The dual of a functor |
| ECategory k => EFunctor (Id k) # | The identity functor on k |
| ECategory k => EFunctor (EHom_X k x) # | |
| ECategory k => EFunctor (EHomX_ k x) # | |
| (EFunctor f1, EFunctor f2, V (ECod f1) ~ V (ECod f2)) => EFunctor (f1 :<*>: f2) # |
|
| (ECategory (ECod g), ECategory (EDom h), V (EDom h) ~ V (ECod g), ECod h ~ EDom g) => EFunctor (g :.: h) # | The composition of two functors. |
| (ECategory c1, ECategory c2, V c1 ~ V c2) => EFunctor (Const c1 c2 x) # | The constant functor. |
type EFunctorOf a b t = (EFunctor t, EDom t ~ a, ECod t ~ b) #
Constructors
| Id |
Instances
| ECategory k => EFunctor (Id k) # | The identity functor on k |
| type EDom (Id k) # | |
Defined in Data.Category.Enriched | |
| type ECod (Id k) # | |
Defined in Data.Category.Enriched | |
| type (Id k) :%% a # | |
Defined in Data.Category.Enriched | |
Instances
| (ECategory (ECod g), ECategory (EDom h), V (EDom h) ~ V (ECod g), ECod h ~ EDom g) => EFunctor (g :.: h) # | The composition of two functors. |
| type EDom (g :.: h) # | |
Defined in Data.Category.Enriched | |
| type ECod (g :.: h) # | |
Defined in Data.Category.Enriched | |
| type (g :.: h) :%% a # | |
Defined in Data.Category.Enriched | |
data Const (c1 :: * -> * -> *) (c2 :: * -> * -> *) x where #
Instances
| (ECategory c1, ECategory c2, V c1 ~ V c2) => EFunctor (Const c1 c2 x) # | The constant functor. |
| type EDom (Const c1 c2 x) # | |
Defined in Data.Category.Enriched | |
| type ECod (Const c1 c2 x) # | |
Defined in Data.Category.Enriched | |
| type (Const c1 c2 x) :%% a # | |
Defined in Data.Category.Enriched | |
Instances
| EFunctor f => EFunctor (Opposite f) # | The dual of a functor |
| type EDom (Opposite f) # | |
Defined in Data.Category.Enriched | |
| type ECod (Opposite f) # | |
Defined in Data.Category.Enriched | |
| type (Opposite f) :%% a # | |
Defined in Data.Category.Enriched | |
Constructors
| f1 :<*>: f2 |
Instances
| (EFunctor f1, EFunctor f2, V (ECod f1) ~ V (ECod f2)) => EFunctor (f1 :<*>: f2) # |
|
| type EDom (f1 :<*>: f2) # | |
| type ECod (f1 :<*>: f2) # | |
| type (f1 :<*>: f2) :%% (a1, a2) # | |
Defined in Data.Category.Enriched | |
data DiagProd (k :: * -> * -> *) #
Constructors
| DiagProd |
Instances
| ECategory k => EFunctor (DiagProd k) # |
|
| type EDom (DiagProd k) # | |
Defined in Data.Category.Enriched | |
| type ECod (DiagProd k) # | |
Defined in Data.Category.Enriched | |
| type (DiagProd k) :%% a # | |
Defined in Data.Category.Enriched | |
newtype UnderlyingF f #
Constructors
| UnderlyingF f |
Instances
| EFunctor f => Functor (UnderlyingF f) # | The underlying functor of an enriched functor |
Defined in Data.Category.Enriched Associated Types type Dom (UnderlyingF f) :: Type -> Type -> Type # type Cod (UnderlyingF f) :: Type -> Type -> Type # type (UnderlyingF f) :% a # Methods (%) :: UnderlyingF f -> Dom (UnderlyingF f) a b -> Cod (UnderlyingF f) (UnderlyingF f :% a) (UnderlyingF f :% b) # | |
| type Dom (UnderlyingF f) # | |
Defined in Data.Category.Enriched | |
| type Cod (UnderlyingF f) # | |
Defined in Data.Category.Enriched | |
| type (UnderlyingF f) :% a # | |
Defined in Data.Category.Enriched | |
data EHom (k :: * -> * -> *) #
Constructors
| EHom |
Instances
| ECategory k => EFunctor (EHom k) # | |
| type EDom (EHom k) # | |
Defined in Data.Category.Enriched | |
| type ECod (EHom k) # | |
Defined in Data.Category.Enriched | |
| type (EHom k) :%% (a, b) # | |
Defined in Data.Category.Enriched | |
data ENat :: (* -> * -> *) -> (* -> * -> *) -> * -> * -> * where #
Enriched natural transformations.
Constructors
| ENat :: (EFunctorOf c d f, EFunctorOf c d g) => f -> g -> (forall z. Obj c z -> Arr d (f :%% z) (g :%% z)) -> ENat c d f g |
The enriched functor k(x, -)
Instances
| ECategory k => EFunctor (EHomX_ k x) # | |
| type EDom (EHomX_ k x) # | |
Defined in Data.Category.Enriched | |
| type ECod (EHomX_ k x) # | |
Defined in Data.Category.Enriched | |
| type (EHomX_ k x) :%% y # | |
Defined in Data.Category.Enriched | |
The enriched functor k(-, x)
Instances
| ECategory k => EFunctor (EHom_X k x) # | |
| type EDom (EHom_X k x) # | |
Defined in Data.Category.Enriched | |
| type ECod (EHom_X k x) # | |
Defined in Data.Category.Enriched | |
| type (EHom_X k x) :%% y # | |
Defined in Data.Category.Enriched | |
type VProfunctor k l t = EFunctorOf (EOp k :<>: l) (Self (V k)) t #
type family End (v :: * -> * -> *) t :: * #
Instances
| type End ((->) :: Type -> Type -> Type) t # | |
Defined in Data.Category.Enriched | |
class CartesianClosed v => HasEnds v where #
Methods
end :: (VProfunctor k k t, V k ~ v) => t -> Obj v (End v t) #
endCounit :: (VProfunctor k k t, V k ~ v) => t -> Obj k a -> v (End v t) (t :%% (a, a)) #
endFactorizer :: (VProfunctor k k t, V k ~ v) => t -> (forall a. Obj k a -> v x (t :%% (a, a))) -> v x (End v t) #
Instances
| HasEnds ((->) :: Type -> Type -> Type) # | |
Defined in Data.Category.Enriched Methods end :: forall (k :: Type -> Type -> Type) t. (VProfunctor k k t, V k ~ (->)) => t -> Obj (->) (End (->) t) # endCounit :: (VProfunctor k k t, V k ~ (->)) => t -> Obj k a -> End (->) t -> (t :%% (a, a)) # endFactorizer :: (VProfunctor k k t, V k ~ (->)) => t -> (forall a. Obj k a -> x -> (t :%% (a, a))) -> x -> End (->) t # | |
Constructors
| HaskEnd | |
Fields
| |
Constructors
| FArr :: (EFunctorOf a b t, EFunctorOf a b s) => t -> s -> FunCat a b t s |
Instances
| (HasEnds (V a), V a ~ V b) => ECategory (FunCat a b) # | The enriched functor category |
Defined in Data.Category.Enriched Methods hom :: Obj (FunCat a b) a0 -> Obj (FunCat a b) b0 -> Obj (V (FunCat a b)) (FunCat a b $ (a0, b0)) # id :: Obj (FunCat a b) a0 -> Arr (FunCat a b) a0 a0 # 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)) # | |
| type V (FunCat a b) # | |
Defined in Data.Category.Enriched | |
| type (FunCat a b) $ (t, s) # | |
(->>) :: (EFunctor t, EFunctor s, ECod t ~ ECod s, V (ECod t) ~ V (ECod s)) => t -> s -> t :->>: s #
data EndFunctor (k :: * -> * -> *) #
Constructors
| EndFunctor |
Instances
| (HasEnds (V k), ECategory k) => EFunctor (EndFunctor k) # | |
Defined in Data.Category.Enriched Associated Types type EDom (EndFunctor k) :: Type -> Type -> Type # type ECod (EndFunctor k) :: Type -> Type -> Type # type (EndFunctor k) :%% a # Methods (%%) :: EndFunctor k -> Obj (EDom (EndFunctor k)) a -> Obj (ECod (EndFunctor k)) (EndFunctor k :%% a) # map :: EDom (EndFunctor k) ~ k0 => EndFunctor k -> Obj k0 a -> Obj k0 b -> V k0 (k0 $ (a, b)) (ECod (EndFunctor k) $ (EndFunctor k :%% a, EndFunctor k :%% b)) # | |
| type EDom (EndFunctor k) # | |
Defined in Data.Category.Enriched | |
| type ECod (EndFunctor k) # | |
Defined in Data.Category.Enriched | |
| type (EndFunctor k) :%% t # | |
Defined in Data.Category.Enriched | |
type family WeigtedLimit (k :: * -> * -> *) w d :: * #
Instances
| type WeigtedLimit (Self v) w d # | |
Defined in Data.Category.Enriched | |
type Lim w d = WeigtedLimit (ECod d) w d #
class HasEnds (V k) => HasLimits k where #
Methods
limitObj :: (EFunctorOf j k d, EFunctorOf j (Self (V k)) w) => w -> d -> Obj k (Lim w d) #
limit :: (EFunctorOf j k d, EFunctorOf j (Self (V k)) w) => w -> d -> Obj k e -> V k (End (V k) (w :->>: (EHomX_ k e :.: d))) (k $ (e, Lim w d)) #
limitInv :: (EFunctorOf j k d, EFunctorOf j (Self (V k)) w) => w -> d -> Obj k e -> V k (k $ (e, Lim w d)) (End (V k) (w :->>: (EHomX_ k e :.: d))) #
Instances
| HasEnds v => HasLimits (Self v) # | |
Defined in Data.Category.Enriched Methods limitObj :: forall (j :: Type -> Type -> Type) d w. (EFunctorOf j (Self v) d, EFunctorOf j (Self (V (Self v))) w) => w -> d -> Obj (Self v) (Lim w d) # limit :: forall (j :: Type -> Type -> Type) d w e. (EFunctorOf j (Self v) d, EFunctorOf j (Self (V (Self v))) w) => 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)) # limitInv :: forall (j :: Type -> Type -> Type) d w e. (EFunctorOf j (Self v) d, EFunctorOf j (Self (V (Self v))) w) => 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))) # | |
type family WeigtedColimit (k :: * -> * -> *) w d :: * #
type Colim w d = WeigtedColimit (ECod d) w d #
class HasEnds (V k) => HasColimits k where #
Methods
colimitObj :: (EFunctorOf j k d, EFunctorOf (EOp j) (Self (V k)) w) => w -> d -> Obj k (Colim w d) #
colimit :: (EFunctorOf j k d, EFunctorOf (EOp j) (Self (V k)) w) => w -> d -> Obj k e -> V k (End (V k) (w :->>: (EHom_X k e :.: Opposite d))) (k $ (Colim w d, e)) #
colimitInv :: (EFunctorOf j k d, EFunctorOf (EOp j) (Self (V k)) w) => w -> d -> Obj k e -> V k (k $ (Colim w d, e)) (End (V k) (w :->>: (EHom_X k e :.: Opposite d))) #
yoneda :: forall f k x. (HasEnds (V k), EFunctorOf k (Self (V k)) f) => f -> Obj k x -> V k (End (V k) (EHomX_ k x :->>: f)) (f :%% x) #
yonedaInv :: forall f k x. (HasEnds (V k), EFunctorOf k (Self (V k)) f) => f -> Obj k x -> V k (f :%% x) (End (V k) (EHomX_ k x :->>: f)) #
Constructors
| Y |
Instances
| (ECategory k, HasEnds (V k)) => EFunctor (Y k) # | Yoneda embedding |
| type EDom (Y k) # | |
Defined in Data.Category.Enriched | |
| type ECod (Y k) # | |
| type (Y k) :%% x # | |
Defined in Data.Category.Enriched | |
Instances
| ECategory PosetTest # | |
Defined in Data.Category.Enriched Methods hom :: Obj PosetTest a -> Obj PosetTest b -> Obj (V PosetTest) (PosetTest $ (a, b)) # id :: Obj PosetTest a -> Arr PosetTest a a # comp :: Obj PosetTest a -> Obj PosetTest b -> Obj PosetTest c -> V PosetTest (BinaryProduct (V PosetTest) (PosetTest $ (b, c)) (PosetTest $ (a, b))) (PosetTest $ (a, c)) # | |
| type V PosetTest # | |
Defined in Data.Category.Enriched | |
| type PosetTest $ (a, b) # | |
Defined in Data.Category.Enriched | |