License | BSD-style (see the file LICENSE) |
---|---|
Maintainer | sjoerd@w3future.com |
Stability | experimental |
Portability | non-portable |
Safe Haskell | Safe-Inferred |
Language | Haskell2010 |
Documentation
type VProfunctor k l t = EFunctorOf (EOp k :<>: l) (Self (V k)) t Source #
class CartesianClosed v => HasEnds v where Source #
end :: (VProfunctor k k t, V k ~ v) => t -> Obj v (End v t) Source #
endCounit :: (VProfunctor k k t, V k ~ v) => t -> Obj k a -> v (End v t) (t :%% (a, a)) Source #
endFactorizer :: (VProfunctor k k t, V k ~ v) => t -> (forall a. Obj k a -> v x (t :%% (a, a))) -> v x (End v t) Source #
Instances
HasEnds (->) Source # | |
Defined in Data.Category.Enriched.Limit end :: forall (k :: Type -> Type -> Type) t. (VProfunctor k k t, V k ~ (->)) => t -> Obj (->) (End (->) t) Source # endCounit :: (VProfunctor k k t, V k ~ (->)) => t -> Obj k a -> End (->) t -> (t :%% (a, a)) Source # endFactorizer :: (VProfunctor k k t, V k ~ (->)) => t -> (forall a. Obj k a -> x -> (t :%% (a, a))) -> x -> End (->) t Source # |
HaskEnd | |
|
data FunCat a b t s where Source #
FArr :: (EFunctorOf a b t, EFunctorOf a b s) => t -> s -> FunCat a b t s |
Instances
(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 # | |
type V (FunCat a b) Source # | |
Defined in Data.Category.Enriched.Limit | |
type (FunCat a b) $ (t, s) Source # | |
(->>) :: (EFunctor t, EFunctor s, ECod t ~ ECod s, V (ECod t) ~ V (ECod s)) => t -> s -> t :->>: s Source #
data EndFunctor (k :: Type -> Type -> Type) Source #
Instances
(HasEnds (V k), ECategory k) => EFunctor (EndFunctor k) Source # | |
Defined in Data.Category.Enriched.Limit type EDom (EndFunctor k) :: Type -> Type -> Type Source # type ECod (EndFunctor k) :: Type -> Type -> Type Source # type (EndFunctor k) :%% a Source # (%%) :: EndFunctor k -> Obj (EDom (EndFunctor k)) a -> Obj (ECod (EndFunctor k)) (EndFunctor k :%% a) Source # 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)) Source # | |
type ECod (EndFunctor k) Source # | |
Defined in Data.Category.Enriched.Limit | |
type EDom (EndFunctor k) Source # | |
Defined in Data.Category.Enriched.Limit | |
type (EndFunctor k) :%% t Source # | |
Defined in Data.Category.Enriched.Limit |
type family WeigtedLimit (k :: Type -> Type -> Type) w d :: Type Source #
Instances
type WeigtedLimit (Self v) w d Source # | |
Defined in Data.Category.Enriched.Limit | |
type WeigtedLimit (InHask k) (InHaskToHask w) d Source # | |
Defined in Data.Category.Enriched.Limit |
type Lim w d = WeigtedLimit (ECod d) w d Source #
class (HasEnds (V k), EFunctor w, ECod w ~ Self (V k)) => HasLimits k w where Source #
limitObj :: EFunctorOf (EDom w) k d => w -> d -> Obj k (Lim w d) Source #
limit :: EFunctorOf (EDom w) k d => w -> d -> Obj k e -> V k (k $ (e, Lim w d)) (End (V k) (w :->>: (EHomX_ k e :.: d))) Source #
limitInv :: EFunctorOf (EDom w) k d => w -> d -> Obj k e -> V k (End (V k) (w :->>: (EHomX_ k e :.: d))) (k $ (e, Lim w d)) Source #
Instances
type Colim w d = WeigtedColimit (ECod d) w d Source #
class (HasEnds (V k), EFunctor w, ECod w ~ Self (V k)) => HasColimits k w where Source #
colimitObj :: (EFunctorOf j k d, EOp j ~ EDom w) => w -> d -> Obj k (Colim w d) Source #
colimit :: (EFunctorOf j k d, EOp j ~ EDom w) => w -> d -> Obj k e -> V k (k $ (Colim w d, e)) (End (V k) (w :->>: (EHom_X k e :.: Opposite d))) Source #
colimitInv :: (EFunctorOf j k d, EOp j ~ EDom w) => w -> d -> Obj k e -> V k (End (V k) (w :->>: (EHom_X k e :.: Opposite d))) (k $ (Colim w d, e)) Source #