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

Proarrow.Profunctor.Representable

Documentation

class Profunctor p => Representable (p :: PRO j k) where Source Comments #

Associated Types

type (p :: PRO j k) % (a :: k) :: j infixl 8 Source Comments #

Methods

index :: forall (a :: j) (b :: k). p a b -> a ~> (p % b) Source Comments #

tabulate :: forall (b :: k) (a :: j). Ob b => (a ~> (p % b)) -> p a b Source Comments #

repMap :: forall (a :: k) (b :: k). (a ~> b) -> (p % a) ~> (p % b) Source Comments #

Instances

Instances details
Representable Forget Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Simplex

Associated Types

type Forget % (n :: Nat) 
Instance details

Defined in Proarrow.Category.Instance.Simplex

type Forget % (n :: Nat) = Fin n

Methods

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

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

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

CategoryOf k => Representable (Id :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Identity

Methods

index :: forall (a :: k) (b :: k). Id a b -> a ~> ((Id :: k -> k -> Type) % b) Source Comments #

tabulate :: forall (b :: k) (a :: k). Ob b => (a ~> ((Id :: k -> k -> Type) % b)) -> Id a b Source Comments #

repMap :: forall (a :: k) (b :: k). (a ~> b) -> ((Id :: k -> k -> Type) % a) ~> ((Id :: k -> k -> Type) % b) Source Comments #

Representable d => Representable (EndLimit d :: Type -> UNIT -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

Methods

index :: forall a (b :: UNIT). EndLimit d a b -> a ~> (EndLimit d % b) Source Comments #

tabulate :: forall (b :: UNIT) a. Ob b => (a ~> (EndLimit d % b)) -> EndLimit d a b Source Comments #

repMap :: forall (a :: UNIT) (b :: UNIT). (a ~> b) -> (EndLimit d % a) ~> (EndLimit d % b) Source Comments #

Monoid m => Representable (Replicate m :: j -> Nat -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Simplex

Methods

index :: forall (a :: j) (b :: Nat). Replicate m a b -> a ~> (Replicate m % b) Source Comments #

tabulate :: forall (b :: Nat) (a :: j). Ob b => (a ~> (Replicate m % b)) -> Replicate m a b Source Comments #

repMap :: forall (a :: Nat) (b :: Nat). (a ~> b) -> (Replicate m % a) ~> (Replicate m % b) Source Comments #

(HasBinaryProducts k, Representable d) => Representable (ProductLimit d :: k -> UNIT -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

Methods

index :: forall (a :: k) (b :: UNIT). ProductLimit d a b -> a ~> (ProductLimit d % b) Source Comments #

tabulate :: forall (b :: UNIT) (a :: k). Ob b => (a ~> (ProductLimit d % b)) -> ProductLimit d a b Source Comments #

repMap :: forall (a :: UNIT) (b :: UNIT). (a ~> b) -> (ProductLimit d % a) ~> (ProductLimit d % b) Source Comments #

HasTerminalObject k => Representable (TerminalLimit d :: k -> UNIT -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Limit

Methods

index :: forall (a :: k) (b :: UNIT). TerminalLimit d a b -> a ~> (TerminalLimit d % b) Source Comments #

tabulate :: forall (b :: UNIT) (a :: k). Ob b => (a ~> (TerminalLimit d % b)) -> TerminalLimit d a b Source Comments #

repMap :: forall (a :: UNIT) (b :: UNIT). (a ~> b) -> (TerminalLimit d % a) ~> (TerminalLimit d % b) Source Comments #

Functor f => Representable (Star f :: j -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Star

Methods

index :: forall (a :: j) (b :: k). Star f a b -> a ~> (Star f % b) Source Comments #

tabulate :: forall (b :: k) (a :: j). Ob b => (a ~> (Star f % b)) -> Star f a b Source Comments #

repMap :: forall (a :: k) (b :: k). (a ~> b) -> (Star f % a) ~> (Star f % b) Source Comments #

(Representable p, Representable q) => Representable (p :.: q :: j1 -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Composition

Methods

index :: forall (a :: j1) (b :: k). (p :.: q) a b -> a ~> ((p :.: q) % b) Source Comments #

tabulate :: forall (b :: k) (a :: j1). Ob b => (a ~> ((p :.: q) % b)) -> (p :.: q) a b Source Comments #

repMap :: forall (a :: k) (b :: k). (a ~> b) -> ((p :.: q) % a) ~> ((p :.: q) % b) Source Comments #

Closed k => Representable (ExponentialFunctor :: k -> (OPPOSITE k, k) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Object.Exponential

Methods

index :: forall (a :: k) (b :: (OPPOSITE k, k)). ExponentialFunctor a b -> a ~> ((ExponentialFunctor :: k -> (OPPOSITE k, k) -> Type) % b) Source Comments #

tabulate :: forall (b :: (OPPOSITE k, k)) (a :: k). Ob b => (a ~> ((ExponentialFunctor :: k -> (OPPOSITE k, k) -> Type) % b)) -> ExponentialFunctor a b Source Comments #

repMap :: forall (a :: (OPPOSITE k, k)) (b :: (OPPOSITE k, k)). (a ~> b) -> ((ExponentialFunctor :: k -> (OPPOSITE k, k) -> Type) % a) ~> ((ExponentialFunctor :: k -> (OPPOSITE k, k) -> Type) % b) 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 #

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 #

(Representable p, Representable q) => Representable (p :**: q :: (k1, k2) -> (k1, k2) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Product

Methods

index :: forall (a :: (k1, k2)) (b :: (k1, k2)). (p :**: q) a b -> a ~> ((p :**: q) % b) Source Comments #

tabulate :: forall (b :: (k1, k2)) (a :: (k1, k2)). Ob b => (a ~> ((p :**: q) % b)) -> (p :**: q) a b Source Comments #

repMap :: forall (a :: (k1, k2)) (b :: (k1, k2)). (a ~> b) -> ((p :**: q) % a) ~> ((p :**: q) % b) Source Comments #

withRepCod :: forall {k1} {k2} (p :: PRO k1 k2) (a :: k2) r. (Representable p, Ob a) => (Ob (p % a) => r) -> r Source Comments #

dimapRep :: forall {j} {k} p (a :: j) (b :: k) (c :: j) (d :: k). Representable p => (c ~> a) -> (b ~> d) -> p a b -> p c d Source Comments #