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

Proarrow.Profunctor.Corepresentable

Documentation

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

Associated Types

type (p :: j +-> k) %% (a :: k) :: j infixl 8 Source Comments #

Methods

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

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

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

Instances

Instances details
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 #

Corepresentable p => Corepresentable (Corep p :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Corepresentable

Methods

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

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

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

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

Defined in Proarrow.Profunctor.Costar

Methods

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

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

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

Representable p => Corepresentable (RepCostar p :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Representable

Methods

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

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

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

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

Defined in Proarrow.Profunctor.Composition

Methods

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

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

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

Representable p => Corepresentable (Op p :: OPPOSITE j -> OPPOSITE k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Opposite

Methods

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

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

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

withCorepObj :: forall {k1} {k2} (p :: k1 +-> k2) (a :: k2) r. (Corepresentable p, Ob a) => (Ob (p %% a) => r) -> r Source Comments #

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

data Corep (p :: j +-> k) (a :: k) (b :: j) where Source Comments #

Constructors

Corep 

Fields

  • :: forall {k} {j} (a :: k) (p :: j +-> k) (b :: j). Ob a
     
  • => { getCorep :: (p %% a) ~> b
     
  •    } -> Corep p a b
     

Instances

Instances details
Corepresentable p => Profunctor (Corep p :: j -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Corepresentable

Methods

dimap :: forall (c :: j) (a :: j) (b :: k) (d :: k). (c ~> a) -> (b ~> d) -> Corep p a b -> Corep p c d Source Comments #

(\\) :: forall (a :: j) (b :: k) r. ((Ob a, Ob b) => r) -> Corep p a b -> r Source Comments #

Corepresentable p => Corepresentable (Corep p :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Corepresentable

Methods

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

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

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

type (Corep p :: k -> j -> Type) %% (a :: k) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Corepresentable

type (Corep p :: k -> j -> Type) %% (a :: k) = p %% a