proarrow-0: Category theory with a central role for profunctors
Safe HaskellNone
LanguageHaskell2010

Proarrow.Category.Instance.Sub

Documentation

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

Constructors

SUB k 

Instances

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

Defined in Proarrow.Profunctor.Forget

Methods

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

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

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

Defined in Proarrow.Profunctor.Cofree

Methods

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

tabulate :: forall (b :: j) (a :: SUBCAT ob). Ob b => (a ~> (CofreeSub ob % b)) -> CofreeSub ob a b Source Comments #

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

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

Defined in Proarrow.Profunctor.Free

Methods

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

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

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

HasFree ob => Adjunction (FreeSub ob :: SUBCAT ob -> k -> Type) (Forget ob :: k -> SUBCAT ob -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Free

Methods

unit :: forall (a :: k). Ob a => (Forget ob :.: FreeSub ob) a a Source Comments #

counit :: (FreeSub ob :.: Forget ob) :~> ((~>) :: CAT (SUBCAT ob)) Source Comments #

(Monoidal k, ob (Unit :: k), forall (a :: k) (b :: k). (ob a, ob b) => IsObMult ob a b) => 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

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, ob (Unit :: k), forall (a :: k) (b :: k). (ob a, ob b) => IsObMult ob a b) => SymMonoidal (SUBCAT ob) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

swap' :: forall (a :: SUBCAT ob) (a' :: SUBCAT ob) (b :: SUBCAT ob) (b' :: SUBCAT ob). (a ~> a') -> (b ~> 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
(MonoidalAction m Type, Monoidal (SUBCAT ob)) => MonoidalAction (SUBCAT ob) Type Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

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 #

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

Defined in Proarrow.Profunctor.Cofree

Methods

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

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

HasFree ob => Profunctor (FreeSub ob :: SUBCAT ob -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Free

Methods

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

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

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

Defined in Proarrow.Profunctor.Forget

Methods

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

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

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

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

Defined in Proarrow.Profunctor.Cofree

Methods

unit :: forall (a :: SUBCAT ob). Ob a => (CofreeSub ob :.: Forget ob) a a Source Comments #

counit :: (Forget ob :.: CofreeSub ob) :~> ((~>) :: CAT k) Source Comments #

(Strong w p, Monoidal (SUBCAT ob)) => Strong (Sub w :: SUBCAT ob -> SUBCAT ob -> Type) (p :: Type +-> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

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

Monad m => Strong (Sub (->) :: SUBCAT (Algebra m) -> SUBCAT (Algebra m) -> Type) (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. Sub (->) a0 b0 -> Classifying m a b x y -> Classifying m a b (Act a0 x) (Act b0 y) Source Comments #

(MonoidalProfunctor p, ob (Unit :: k), forall (a :: k) (b :: k). (ob a, ob b) => IsObMult ob a b) => 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 #

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 :: SUBCAT ob -> j -> Type) % (a :: j) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Cofree

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

Defined in Proarrow.Profunctor.Free

type (FreeSub ob :: SUBCAT ob -> j -> Type) % (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 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 :: k -> SUBCAT ob -> Type) % ('SUB a :: SUBCAT ob) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Forget

type (Forget ob :: k -> SUBCAT ob -> Type) % ('SUB a :: SUBCAT ob) = a
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 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
(Strong w p, Monoidal (SUBCAT ob)) => Strong (Sub w :: SUBCAT ob -> SUBCAT ob -> Type) (p :: Type +-> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

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

Monad m => Strong (Sub (->) :: SUBCAT (Algebra m) -> SUBCAT (Algebra m) -> Type) (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. Sub (->) a0 b0 -> Classifying m a b x y -> Classifying m a b (Act a0 x) (Act b0 y) Source Comments #

(MonoidalProfunctor p, ob (Unit :: k), forall (a :: k) (b :: k). (ob a, ob b) => IsObMult ob a b) => 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