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

Proarrow.Profunctor.Corepresentable

Documentation

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

Associated Types

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

Methods

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

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

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

Instances

Instances details
Corepresentable Forget Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Linear

Associated Types

type Forget %% (a :: LINEAR) 
Instance details

Defined in Proarrow.Category.Instance.Linear

type Forget %% (a :: LINEAR) = UN 'L a

Methods

coindex :: forall (a :: LINEAR) b. Forget a b -> (Forget %% a) ~> b Source Comments #

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

corepMap :: forall (a :: LINEAR) (b :: LINEAR). (a ~> b) -> (Forget %% a) ~> (Forget %% b) Source Comments #

Corepresentable Free Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Linear

Associated Types

type Free %% (a :: Type) 
Instance details

Defined in Proarrow.Category.Instance.Linear

type Free %% (a :: Type) = 'L (Ur a)

Methods

coindex :: forall a (b :: LINEAR). Free a b -> (Free %% a) ~> b Source Comments #

cotabulate :: forall a (b :: LINEAR). Ob a => ((Free %% a) ~> b) -> Free a b Source Comments #

corepMap :: (a ~> b) -> (Free %% a) ~> (Free %% b) Source Comments #

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

Defined in Proarrow.Profunctor.Identity

Methods

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

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

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

(HasBinaryCoproducts k, Corepresentable d) => Corepresentable (CoproductColimit d :: UNIT -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

Methods

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

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

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

HasInitialObject k => Corepresentable (InitialLimit d :: UNIT -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Colimit

Methods

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

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

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

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

Defined in Proarrow.Profunctor.Costar

Methods

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

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

corepMap :: forall (a :: j) (b :: j). (a ~> b) -> (Costar f %% a) ~> (Costar f %% b) Source Comments #

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

Defined in Proarrow.Profunctor.Composition

Methods

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

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

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

withCorepCod :: forall {j} {k} (p :: PRO j k) (a :: j) r. (Corepresentable p, Ob a) => (Ob (p %% a) => r) -> r Source Comments #

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