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
Adjunction List (Forget Monoid) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Forget

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 #

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 #

(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

par :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) (c :: SUBCAT ob) (d :: SUBCAT ob). (a ~> b) -> (c ~> d) -> (a ** c) ~> (b ** d) Source Comments #

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

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

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

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

associator :: forall (a :: SUBCAT ob) (b :: SUBCAT ob) (c :: SUBCAT ob). Obj a -> Obj b -> Obj c -> ((a ** b) ** c) ~> (a ** (b ** c)) Source Comments #

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

Defined in Proarrow.Category.Monoidal.Optic

Methods

act :: forall (p :: SUBCAT ob) (q :: SUBCAT ob) (x :: k) (y :: k). (p ~> q) -> (x ~> y) -> Act p x ~> Act q y Source Comments #

unitor :: forall (x :: k). Obj x -> Act (Unit :: SUBCAT ob) x ~> x Source Comments #

unitorInv :: forall (x :: k). Obj x -> x ~> Act (Unit :: SUBCAT ob) x Source Comments #

multiplicator :: forall (p :: SUBCAT ob) (q :: SUBCAT ob) (x :: k). Obj p -> Obj q -> Obj x -> Act p (Act q x) ~> Act (p ** q) x Source Comments #

multiplicatorInv :: forall (p :: SUBCAT ob) (q :: SUBCAT ob) (x :: k). Obj p -> Obj q -> Obj x -> Act (p ** q) x ~> Act p (Act q x) Source Comments #

Profunctor List Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Forget

Methods

dimap :: forall (c :: SUBCAT Monoid) (a :: SUBCAT Monoid) b d. (c ~> a) -> (b ~> d) -> List a b -> List c d Source Comments #

(\\) :: forall (a :: SUBCAT Monoid) b r. ((Ob a, Ob b) => r) -> List a b -> r Source Comments #

Representable List Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Forget

Associated Types

type List % (a :: Type) 
Instance details

Defined in Proarrow.Profunctor.Forget

type List % (a :: Type) = 'SUB [a] :: SUBCAT Monoid

Methods

index :: forall (a :: SUBCAT Monoid) b. List a b -> a ~> (List % b) Source Comments #

tabulate :: forall b (a :: SUBCAT Monoid). Ob b => (a ~> (List % b)) -> List a b Source Comments #

repMap :: (a ~> b) -> (List % a) ~> (List % b) Source Comments #

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

Defined in Proarrow.Category.Instance.Sub

Methods

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

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

Monad m => Tambara (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

tambara :: forall (x :: SUBCAT (Algebra m)) (x' :: SUBCAT (Algebra m)) a0 b0. Sub x x' -> Classifying m a b a0 b0 -> Classifying m a b (Act x a0) (Act x' b0) Source Comments #

(Monoidal k, ob (Unit :: k), forall (a :: k) (b :: k). (ob a, ob b) => IsObMult ob a b) => MonoidalProfunctor (Sub :: SUBCAT ob -> SUBCAT ob -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

lift0 :: Sub (Unit :: SUBCAT ob) (Unit :: SUBCAT ob) Source Comments #

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

Profunctor ((~>) :: CAT k) => Profunctor (Sub :: 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 a b -> Sub c d Source Comments #

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

type List % (a :: Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Forget

type List % (a :: Type) = 'SUB [a] :: SUBCAT Monoid
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 :: 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 :: k) Source Comments # 
Instance details

Defined in Proarrow.Category.Monoidal.Optic

type Act (p :: SUBCAT ob) (x :: k) = 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

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

Constructors

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

Instances

Instances details
Promonad ((~>) :: CAT k) => Promonad (Sub :: SUBCAT ob -> SUBCAT ob -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

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

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

Monad m => Tambara (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

tambara :: forall (x :: SUBCAT (Algebra m)) (x' :: SUBCAT (Algebra m)) a0 b0. Sub x x' -> Classifying m a b a0 b0 -> Classifying m a b (Act x a0) (Act x' b0) Source Comments #

(Monoidal k, ob (Unit :: k), forall (a :: k) (b :: k). (ob a, ob b) => IsObMult ob a b) => MonoidalProfunctor (Sub :: SUBCAT ob -> SUBCAT ob -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Sub

Methods

lift0 :: Sub (Unit :: SUBCAT ob) (Unit :: SUBCAT ob) Source Comments #

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

Profunctor ((~>) :: CAT k) => Profunctor (Sub :: 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 a b -> Sub c d Source Comments #

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

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