proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Category.Instance.Sub

Documentation

data SUBCAT (ob :: OB k) Source Comments #

Constructors

SUB k 

Instances

Instances details
(MonoidalAction m Type, Monoidal (SUBCAT ob)) => Strong (SUBCAT ob) (->) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

act :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) x y. (a ~> b) -> (x -> y) -> Act a x -> Act b y Source Comments #

(Functor f, Applicative f) => Strong (SUBCAT Traversable) (Star (Prelude f) :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

act :: forall (a :: SUBCAT Traversable) (b :: SUBCAT Traversable) x y. (a ~> b) -> Star (Prelude f) x y -> Star (Prelude f) (Act a x) (Act b y) Source Comments #

Monad m => Strong (SUBCAT (Algebra m)) (Classifying m a b :: Type -> Type -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

Methods

act :: forall (a0 :: SUBCAT (Algebra m)) (b0 :: SUBCAT (Algebra m)) x y. (a0 ~> b0) -> Classifying m a b x y -> Classifying m a b (Act a0 x) (Act b0 y) Source Comments #

HasCofree ob => FunctorForRep (CofreeSub ob :: j +-> SUBCAT ob) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Cofree

Methods

fmap :: forall (a :: j) (b :: j). (a ~> b) -> (CofreeSub ob @ a) ~> (CofreeSub ob @ b) Source Comments #

HasFree ob => FunctorForRep (FreeSub ob :: j +-> SUBCAT ob) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Free

Methods

fmap :: forall (a :: j) (b :: j). (a ~> b) -> (FreeSub ob @ a) ~> (FreeSub ob @ b) Source Comments #

HasCofree ob => Corepresentable (Rep (CofreeSub ob) :: SUBCAT ob -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Cofree

Methods

coindex :: forall (a :: SUBCAT ob) (b :: k). Rep (CofreeSub ob) a b -> (Rep (CofreeSub ob) %% a) ~> b Source Comments #

cotabulate :: forall (a :: SUBCAT ob) (b :: k). Ob a => ((Rep (CofreeSub ob) %% a) ~> b) -> Rep (CofreeSub ob) a b Source Comments #

corepMap :: forall (a :: SUBCAT ob) (b :: SUBCAT ob). (a ~> b) -> (Rep (CofreeSub ob) %% a) ~> (Rep (CofreeSub ob) %% b) Source Comments #

EnrichedProfunctor v p => EnrichedProfunctor (Clone v) (Op p :: OPPOSITE j -> OPPOSITE k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Enriched

Methods

withProObj :: forall (a :: OPPOSITE j) (b :: OPPOSITE k) r. (Ob a, Ob b) => (Ob (ProObj (Clone v) (Op p) a b) => r) -> r Source Comments #

underlying :: forall (a :: OPPOSITE j) (b :: OPPOSITE k). Op p a b -> (Unit :: Clone v) ~> ProObj (Clone v) (Op p) a b Source Comments #

enriched :: forall (a :: OPPOSITE j) (b :: OPPOSITE k). (Ob a, Ob b) => ((Unit :: Clone v) ~> ProObj (Clone v) (Op p) a b) -> Op p a b Source Comments #

rmap :: forall (a :: OPPOSITE j) (b :: OPPOSITE k) (c :: OPPOSITE k). (Ob a, Ob b, Ob c) => (HomObj (Clone v) b c ** ProObj (Clone v) (Op p) a b) ~> ProObj (Clone v) (Op p) a c Source Comments #

lmap :: forall (a :: OPPOSITE j) (b :: OPPOSITE k) (c :: OPPOSITE j). (Ob a, Ob b, Ob c) => (HomObj (Clone v) c a ** ProObj (Clone v) (Op p) a b) ~> ProObj (Clone v) (Op p) c b Source Comments #

SubMonoidal ob => Monoidal (SUBCAT ob) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Associated Types

type Unit 
Instance details

Defined in Proarrow.Category.Instance.Sub

type Unit = 'SUB (Unit :: k) :: SUBCAT ob

Methods

withOb2 :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) r. (Ob a, Ob b) => (Ob (a ** b) => r) -> r Source Comments #

leftUnitor :: forall (a :: SUBCAT ob). Ob a => ((Unit :: SUBCAT ob) ** a) ~> a Source Comments #

leftUnitorInv :: forall (a :: SUBCAT ob). Ob a => a ~> ((Unit :: SUBCAT ob) ** a) Source Comments #

rightUnitor :: forall (a :: SUBCAT ob). Ob a => (a ** (Unit :: SUBCAT ob)) ~> a Source Comments #

rightUnitorInv :: forall (a :: SUBCAT ob). Ob a => a ~> (a ** (Unit :: SUBCAT ob)) Source Comments #

associator :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) (c :: SUBCAT ob). (Ob a, Ob b, Ob c) => ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments #

associatorInv :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) (c :: SUBCAT ob). (Ob a, Ob b, Ob c) => (a ** (b ** c)) ~> ((a ** b) ** c) Source Comments #

(SymMonoidal k, SubMonoidal ob) => SymMonoidal (SUBCAT ob) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

swap :: forall (a :: SUBCAT ob) (b :: SUBCAT ob). (Ob a, Ob b) => (a ** b) ~> (b ** a) Source Comments #

CategoryOf k => CategoryOf (SUBCAT ob) Source Comments #

The subcategory with objects with instances of the given constraint ob.

Instance details

Defined in Proarrow.Category.Instance.Sub

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Category.Instance.Sub

type (~>) = Sub ((~>) :: CAT k) :: SUBCAT ob -> SUBCAT ob -> Type
(SubMonoidal ob, CopyDiscard k) => CopyDiscard (SUBCAT ob) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

copy :: forall (a :: SUBCAT ob). Ob a => a ~> (a ** a) Source Comments #

discard :: forall (a :: SUBCAT ob). Ob a => a ~> (Unit :: SUBCAT ob) Source Comments #

(MonoidalAction m Type, Monoidal (SUBCAT ob)) => MonoidalAction (SUBCAT ob) Type Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

withObAct :: forall (a :: SUBCAT ob) x r. (Ob a, Ob x) => (Ob (Act a x) => r) -> r Source Comments #

unitor :: Ob x => Act (Unit :: SUBCAT ob) x ~> x Source Comments #

unitorInv :: Ob x => x ~> Act (Unit :: SUBCAT ob) x Source Comments #

multiplicator :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) x. (Ob a, Ob b, Ob x) => Act a (Act b x) ~> Act (a ** b) x Source Comments #

multiplicatorInv :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) x. (Ob a, Ob b, Ob x) => Act (a ** b) x ~> Act a (Act b x) Source Comments #

CategoryOf k => FunctorForRep (Forget ob :: SUBCAT ob +-> k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

fmap :: forall (a :: SUBCAT ob) (b :: SUBCAT ob). (a ~> b) -> (Forget ob @ a) ~> (Forget ob @ b) Source Comments #

HasFree ob => Representable (Corep (FreeSub ob) :: k -> SUBCAT ob -> Type) Source Comments #

By creating the right adjoint to the free functor, we obtain the free-forgetful adjunction.

Instance details

Defined in Proarrow.Profunctor.Free

Methods

index :: forall (a :: k) (b :: SUBCAT ob). Corep (FreeSub ob) a b -> a ~> (Corep (FreeSub ob) % b) Source Comments #

tabulate :: forall (b :: SUBCAT ob) (a :: k). Ob b => (a ~> (Corep (FreeSub ob) % b)) -> Corep (FreeSub ob) a b Source Comments #

repMap :: forall (a :: SUBCAT ob) (b :: SUBCAT ob). (a ~> b) -> (Corep (FreeSub ob) % a) ~> (Corep (FreeSub ob) % b) Source Comments #

Monoid m => EnrichedProfunctor (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) Source Comments #

A monoid is a one object enriched category.

Instance details

Defined in Proarrow.Category.Enriched

Methods

withProObj :: forall (a :: MONOIDK m) (b :: MONOIDK m) r. (Ob a, Ob b) => (Ob (ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) a b) => r) -> r Source Comments #

underlying :: forall (a :: MONOIDK m) (b :: MONOIDK m). Mon a b -> (Unit :: Clone k) ~> ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) a b Source Comments #

enriched :: forall (a :: MONOIDK m) (b :: MONOIDK m). (Ob a, Ob b) => ((Unit :: Clone k) ~> ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) a b) -> Mon a b Source Comments #

rmap :: forall (a :: MONOIDK m) (b :: MONOIDK m) (c :: MONOIDK m). (Ob a, Ob b, Ob c) => (HomObj (Clone k) b c ** ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) a b) ~> ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) a c Source Comments #

lmap :: forall (a :: MONOIDK m) (b :: MONOIDK m) (c :: MONOIDK m). (Ob a, Ob b, Ob c) => (HomObj (Clone k) c a ** ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) a b) ~> ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) c b Source Comments #

(MonoidalProfunctor p, SubMonoidal ob) => MonoidalProfunctor (Sub p :: SUBCAT ob -> SUBCAT ob -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

par0 :: Sub p (Unit :: SUBCAT ob) (Unit :: SUBCAT ob) Source Comments #

par :: forall (x1 :: SUBCAT ob) (x2 :: SUBCAT ob) (y1 :: SUBCAT ob) (y2 :: SUBCAT ob). Sub p x1 x2 -> Sub p y1 y2 -> Sub p (x1 ** y1) (x2 ** y2) Source Comments #

Profunctor p => Profunctor (Sub p :: SUBCAT ob -> SUBCAT ob -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

dimap :: forall (c :: SUBCAT ob) (a :: SUBCAT ob) (b :: SUBCAT ob) (d :: SUBCAT ob). (c ~> a) -> (b ~> d) -> Sub p a b -> Sub p c d Source Comments #

(\\) :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) r. ((Ob a, Ob b) => r) -> Sub p a b -> r Source Comments #

(Representable p, forall (a :: k). ob a => ob (p % a)) => Representable (Sub p :: SUBCAT ob -> SUBCAT ob -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

index :: forall (a :: SUBCAT ob) (b :: SUBCAT ob). Sub p a b -> a ~> ((Sub p :: SUBCAT ob -> SUBCAT ob -> Type) % b) Source Comments #

tabulate :: forall (b :: SUBCAT ob) (a :: SUBCAT ob). Ob b => (a ~> ((Sub p :: SUBCAT ob -> SUBCAT ob -> Type) % b)) -> Sub p a b Source Comments #

repMap :: forall (a :: SUBCAT ob) (b :: SUBCAT ob). (a ~> b) -> ((Sub p :: SUBCAT ob -> SUBCAT ob -> Type) % a) ~> ((Sub p :: SUBCAT ob -> SUBCAT ob -> Type) % b) Source Comments #

Profunctor j => Profunctor (LimitAdj j :: COREPK b k -> REPK a k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Adjunction

Methods

dimap :: forall (c :: COREPK b k) (a0 :: COREPK b k) (b0 :: REPK a k) (d :: REPK a k). (c ~> a0) -> (b0 ~> d) -> LimitAdj j a0 b0 -> LimitAdj j c d Source Comments #

(\\) :: forall (a0 :: COREPK b k) (b0 :: REPK a k) r. ((Ob a0, Ob b0) => r) -> LimitAdj j a0 b0 -> r Source Comments #

HasColimits j k => Corepresentable (LimitAdj j :: COREPK b k -> REPK a k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Adjunction

Methods

coindex :: forall (a0 :: COREPK b k) (b0 :: REPK a k). LimitAdj j a0 b0 -> ((LimitAdj j :: COREPK b k -> REPK a k -> Type) %% a0) ~> b0 Source Comments #

cotabulate :: forall (a0 :: COREPK b k) (b0 :: REPK a k). Ob a0 => (((LimitAdj j :: COREPK b k -> REPK a k -> Type) %% a0) ~> b0) -> LimitAdj j a0 b0 Source Comments #

corepMap :: forall (a0 :: COREPK b k) (b0 :: COREPK b k). (a0 ~> b0) -> ((LimitAdj j :: COREPK b k -> REPK a k -> Type) %% a0) ~> ((LimitAdj j :: COREPK b k -> REPK a k -> Type) %% b0) Source Comments #

HasLimits j k => Representable (LimitAdj j :: COREPK b k -> REPK a k -> Type) Source Comments #

Colimit j -| Limit j

Instance details

Defined in Proarrow.Adjunction

Methods

index :: forall (a0 :: COREPK b k) (b0 :: REPK a k). LimitAdj j a0 b0 -> a0 ~> ((LimitAdj j :: COREPK b k -> REPK a k -> Type) % b0) Source Comments #

tabulate :: forall (b0 :: REPK a k) (a0 :: COREPK b k). Ob b0 => (a0 ~> ((LimitAdj j :: COREPK b k -> REPK a k -> Type) % b0)) -> LimitAdj j a0 b0 Source Comments #

repMap :: forall (a0 :: REPK a k) (b0 :: REPK a k). (a0 ~> b0) -> ((LimitAdj j :: COREPK b k -> REPK a k -> Type) % a0) ~> ((LimitAdj j :: COREPK b k -> REPK a k -> Type) % b0) Source Comments #

Promonad p => Promonad (Sub p :: SUBCAT ob -> SUBCAT ob -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

id :: forall (a :: SUBCAT ob). Ob a => Sub p a a Source Comments #

(.) :: forall (b :: SUBCAT ob) (c :: SUBCAT ob) (a :: SUBCAT ob). Sub p b c -> Sub p a b -> Sub p a c Source Comments #

HasFree (On Monoid Semigroup) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Free

Associated Types

type Free (On Monoid Semigroup) 
Instance details

Defined in Proarrow.Profunctor.Free

Methods

lift' :: forall (a :: SUBCAT Semigroup) (b :: SUBCAT Semigroup). (a ~> b) -> Free (On Monoid Semigroup) a b Source Comments #

retract' :: forall (b :: SUBCAT Semigroup) (a :: SUBCAT Semigroup). On Monoid Semigroup b => Free (On Monoid Semigroup) a b -> a ~> b Source Comments #

type (CofreeSub ob :: j +-> SUBCAT ob) @ (a :: j) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Cofree

type (CofreeSub ob :: j +-> SUBCAT ob) @ (a :: j) = 'SUB (Cofree ob % a) :: SUBCAT ob
type (FreeSub ob :: j +-> SUBCAT ob) @ (a :: j) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Free

type (FreeSub ob :: j +-> SUBCAT ob) @ (a :: j) = 'SUB (Free ob % a) :: SUBCAT ob
type UN ('SUB :: j -> SUBCAT ob) ('SUB k :: SUBCAT ob) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

type UN ('SUB :: j -> SUBCAT ob) ('SUB k :: SUBCAT ob) = k
type ProObj (Clone v) (Op p :: OPPOSITE j -> OPPOSITE k -> Type) ('OP a :: OPPOSITE j) ('OP b :: OPPOSITE k) Source Comments # 
Instance details

Defined in Proarrow.Category.Enriched

type ProObj (Clone v) (Op p :: OPPOSITE j -> OPPOSITE k -> Type) ('OP a :: OPPOSITE j) ('OP b :: OPPOSITE k) = 'SUB (ProObj v p b a) :: SUBCAT (Any :: v -> Constraint)
type Unit Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

type Unit = 'SUB (Unit :: k) :: SUBCAT ob
type (~>) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

type (~>) = Sub ((~>) :: CAT k) :: SUBCAT ob -> SUBCAT ob -> Type
type Ob (a :: SUBCAT ob) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

type Ob (a :: SUBCAT ob) = (Is ('SUB :: k -> SUBCAT ob) a, Ob (UN ('SUB :: k -> SUBCAT ob) a), ob (UN ('SUB :: k -> SUBCAT ob) a))
type (a :: SUBCAT ob) ** (b :: SUBCAT ob) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

type (a :: SUBCAT ob) ** (b :: SUBCAT ob) = 'SUB (UN ('SUB :: k -> SUBCAT ob) a ** UN ('SUB :: k -> SUBCAT ob) b) :: SUBCAT ob
type Act (p :: SUBCAT ob) (x :: Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

type Act (p :: SUBCAT ob) (x :: Type) = Act (UN ('SUB :: m -> SUBCAT ob) p) x
type (Forget ob :: SUBCAT ob +-> k) @ ('SUB a :: SUBCAT ob) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

type (Forget ob :: SUBCAT ob +-> k) @ ('SUB a :: SUBCAT ob) = a
type (Rep (CofreeSub ob) :: SUBCAT ob -> k -> Type) %% (a :: SUBCAT ob) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Cofree

type (Rep (CofreeSub ob) :: SUBCAT ob -> k -> Type) %% (a :: SUBCAT ob) = UN ('SUB :: k -> SUBCAT ob) a
type (Corep (FreeSub ob) :: k -> SUBCAT ob -> Type) % (a :: SUBCAT ob) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Free

type (Corep (FreeSub ob) :: k -> SUBCAT ob -> Type) % (a :: SUBCAT ob) = UN ('SUB :: k -> SUBCAT ob) a
type ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) ('M :: MONOIDK m) ('M :: MONOIDK m) Source Comments # 
Instance details

Defined in Proarrow.Category.Enriched

type ProObj (Clone k) (Mon :: MONOIDK m -> MONOIDK m -> Type) ('M :: MONOIDK m) ('M :: MONOIDK m) = 'SUB m :: SUBCAT (Any :: k -> Constraint)
type (Sub p :: SUBCAT ob -> SUBCAT ob -> Type) % (a :: SUBCAT ob) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

type (Sub p :: SUBCAT ob -> SUBCAT ob -> Type) % (a :: SUBCAT ob) = 'SUB (p % UN ('SUB :: k -> SUBCAT ob) a) :: SUBCAT ob
type (LimitAdj j :: COREPK b k -> REPK a k -> Type) %% (c :: COREPK b k) Source Comments # 
Instance details

Defined in Proarrow.Adjunction

type (LimitAdj j :: COREPK b k -> REPK a k -> Type) %% (c :: COREPK b k) = REP (CorepStar (Colimit j (UN ('OP :: (k +-> b) -> OPPOSITE (k +-> b)) (UN ('SUB :: OPPOSITE (k +-> b) -> SUBCAT (OpCorepresentable :: OPPOSITE (k +-> b) -> Constraint)) c))))
type (LimitAdj j :: COREPK b k -> REPK a k -> Type) % (r :: REPK a k) Source Comments # 
Instance details

Defined in Proarrow.Adjunction

type (LimitAdj j :: COREPK b k -> REPK a k -> Type) % (r :: REPK a k) = COREP (RepCostar (Limit j (UN ('SUB :: (a +-> k) -> SUBCAT (Representable :: (a +-> k) -> Constraint)) r)))
type Free (On Monoid Semigroup) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Free

data Sub (p :: CAT k) (a :: SUBCAT ob) (b :: SUBCAT ob) where Source Comments #

Constructors

Sub 

Fields

  • :: forall {k} (ob :: OB k) (a1 :: k) (b1 :: k) (p :: CAT k). (ob a1, ob b1)
     
  • => { unSub :: p a1 b1
     
  •    } -> Sub p ('SUB a1 :: SUBCAT ob) ('SUB b1 :: SUBCAT ob)
     

Instances

Instances details
(MonoidalProfunctor p, SubMonoidal ob) => MonoidalProfunctor (Sub p :: SUBCAT ob -> SUBCAT ob -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

par0 :: Sub p (Unit :: SUBCAT ob) (Unit :: SUBCAT ob) Source Comments #

par :: forall (x1 :: SUBCAT ob) (x2 :: SUBCAT ob) (y1 :: SUBCAT ob) (y2 :: SUBCAT ob). Sub p x1 x2 -> Sub p y1 y2 -> Sub p (x1 ** y1) (x2 ** y2) Source Comments #

Profunctor p => Profunctor (Sub p :: SUBCAT ob -> SUBCAT ob -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

dimap :: forall (c :: SUBCAT ob) (a :: SUBCAT ob) (b :: SUBCAT ob) (d :: SUBCAT ob). (c ~> a) -> (b ~> d) -> Sub p a b -> Sub p c d Source Comments #

(\\) :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) r. ((Ob a, Ob b) => r) -> Sub p a b -> r Source Comments #

(Representable p, forall (a :: k). ob a => ob (p % a)) => Representable (Sub p :: SUBCAT ob -> SUBCAT ob -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

index :: forall (a :: SUBCAT ob) (b :: SUBCAT ob). Sub p a b -> a ~> ((Sub p :: SUBCAT ob -> SUBCAT ob -> Type) % b) Source Comments #

tabulate :: forall (b :: SUBCAT ob) (a :: SUBCAT ob). Ob b => (a ~> ((Sub p :: SUBCAT ob -> SUBCAT ob -> Type) % b)) -> Sub p a b Source Comments #

repMap :: forall (a :: SUBCAT ob) (b :: SUBCAT ob). (a ~> b) -> ((Sub p :: SUBCAT ob -> SUBCAT ob -> Type) % a) ~> ((Sub p :: SUBCAT ob -> SUBCAT ob -> Type) % b) Source Comments #

Promonad p => Promonad (Sub p :: SUBCAT ob -> SUBCAT ob -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

id :: forall (a :: SUBCAT ob). Ob a => Sub p a a Source Comments #

(.) :: forall (b :: SUBCAT ob) (c :: SUBCAT ob) (a :: SUBCAT ob). Sub p b c -> Sub p a b -> Sub p a c Source Comments #

type (Sub p :: SUBCAT ob -> SUBCAT ob -> Type) % (a :: SUBCAT ob) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

type (Sub p :: SUBCAT ob -> SUBCAT ob -> Type) % (a :: SUBCAT ob) = 'SUB (p % UN ('SUB :: k -> SUBCAT ob) a) :: SUBCAT ob

class c (UN ('SUB :: k -> SUBCAT ob) a) => On (c :: k -> Constraint) (ob :: OB k) (a :: SUBCAT ob) Source Comments #

Instances

Instances details
c (UN ('SUB :: k -> SUBCAT ob) a) => On (c :: k -> Constraint) (ob :: OB k) (a :: SUBCAT ob) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

class (CategoryOf k, ob (a ** b)) => IsObMult (ob :: OB k) (a :: k) (b :: k) Source Comments #

Instances

Instances details
(CategoryOf k, ob (a ** b)) => IsObMult (ob :: k -> Constraint) (a :: k) (b :: k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

class (Monoidal k, ob (Unit :: k), forall (a :: k) (b :: k). (ob a, ob b) => IsObMult ob a b) => SubMonoidal (ob :: OB k) Source Comments #

Instances

Instances details
(Monoidal k, ob (Unit :: k), forall (a :: k) (b :: k). (ob a, ob b) => IsObMult ob a b) => SubMonoidal (ob :: k -> Constraint) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

data family Forget :: forall (ob :: OB k) -> SUBCAT ob +-> k Source Comments #

Instances

Instances details
CategoryOf k => FunctorForRep (Forget ob :: SUBCAT ob +-> k) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

fmap :: forall (a :: SUBCAT ob) (b :: SUBCAT ob). (a ~> b) -> (Forget ob @ a) ~> (Forget ob @ b) Source Comments #

type (Forget ob :: SUBCAT ob +-> k) @ ('SUB a :: SUBCAT ob) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

type (Forget ob :: SUBCAT ob +-> k) @ ('SUB a :: SUBCAT ob) = a

type REP (f :: j +-> k) = 'SUB f :: SUBCAT (Representable :: (j +-> k) -> Constraint) Source Comments #

class Corepresentable (UN ('OP :: (j +-> k) -> OPPOSITE (j +-> k)) p) => OpCorepresentable (p :: OPPOSITE (j +-> k)) Source Comments #

Instances

Instances details
Corepresentable (UN ('OP :: (j +-> k) -> OPPOSITE (j +-> k)) p) => OpCorepresentable (p :: OPPOSITE (j +-> k)) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

type COREP (f :: k +-> j) = 'SUB ('OP f) :: SUBCAT (OpCorepresentable :: OPPOSITE (k +-> j) -> Constraint) Source Comments #