proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Profunctor.Representable

Documentation

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

Associated Types

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

Methods

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

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

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

Instances

Instances details
HasTerminalObject k => Representable (Term :: k -> () -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Fam

Methods

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

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

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

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

Defined in Proarrow.Category.Instance.Simplex

Methods

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

tabulate :: forall (b :: Nat) (a :: k). 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 #

Representable (->) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Representable

Associated Types

type (->) % (a :: Type) 
Instance details

Defined in Proarrow.Profunctor.Representable

type (->) % (a :: Type) = a

Methods

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

tabulate :: Ob b => (a ~> ((->) % b)) -> a -> b Source Comments #

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

Representable (Costar ((,) a) :: Type -> Type -> Type) Source Comments #

The right adjoint of (,) a is ((->) a).

Instance details

Defined in Proarrow.Adjunction

Methods

index :: Costar ((,) a) a0 b -> a0 ~> (Costar ((,) a) % b) Source Comments #

tabulate :: Ob b => (a0 ~> (Costar ((,) a) % b)) -> Costar ((,) a) a0 b Source Comments #

repMap :: (a0 ~> b) -> (Costar ((,) a) % a0) ~> (Costar ((,) a) % b) Source Comments #

(CategoryOf j, CategoryOf k, Ob c) => Representable (Constant c :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Constant

Methods

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

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

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

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

Defined in Proarrow.Profunctor.Representable

Methods

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

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

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

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

Defined in Proarrow.Profunctor.Representable

Methods

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

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

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

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

Defined in Proarrow.Profunctor.Star

Methods

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

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

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

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

Defined in Proarrow.Profunctor.Wrapped

Methods

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

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

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

(forall (b :: j). TermUniversal l b) => Representable (AsLeftAdjoint l :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Universal

Methods

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

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

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

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

Defined in Proarrow.Universal

Methods

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

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

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

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

Defined in Proarrow.Universal

Methods

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

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

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

(Ob w, MonoidalAction m k) => Representable (Writer w :: k -> k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Promonad.Writer

Methods

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

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

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

(HasBinaryProducts k, Representable p, Representable q) => Representable (p :*: q :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Object.BinaryProduct

Methods

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

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

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

(HasLimits j2 k, Representable d) => Representable (Ran ('OP j2) d :: k -> j1 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Ran

Methods

index :: forall (a :: k) (b :: j1). Ran ('OP j2) d a b -> a ~> (Ran ('OP j2) d % b) Source Comments #

tabulate :: forall (b :: j1) (a :: k). Ob b => (a ~> (Ran ('OP j2) d % b)) -> Ran ('OP j2) d a b Source Comments #

repMap :: forall (a :: j1) (b :: j1). (a ~> b) -> (Ran ('OP j2) d % a) ~> (Ran ('OP j2) d % b) Source Comments #

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

Defined in Proarrow.Profunctor.Composition

Methods

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

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

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

(Representable p, Representable q) => Representable (p :&&&: q :: (i, j2) -> j1 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

index :: forall (a :: (i, j2)) (b :: j1). (p :&&&: q) a b -> a ~> ((p :&&&: q) % b) Source Comments #

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

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

Profunctor p => Representable (InjL p :: COLLAGE p -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

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

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

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

Profunctor p => Representable (InjR p :: COLLAGE p -> j1 -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Collage

Methods

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

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

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

Monoidal k => Representable (Tensor :: k -> LIST k -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Promonoidal

Methods

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

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

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

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

Defined in Proarrow.Category.Opposite

Methods

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

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

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

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

Defined in Proarrow.Object.BinaryProduct

Methods

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

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

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

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

Defined in Proarrow.Profunctor.List

Methods

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

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

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

HasFree ob => Representable (Corep (FreeSub ob) :: k -> SUBCAT ob -> Type) Source Comments #

By creating the right adjoint to the free functor, we obtain the free-forgetful adjunction.

Instance details

Defined in Proarrow.Profunctor.Free

Methods

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

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

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

(Representable p, Representable q) => Representable (p :|||: q :: k -> COPRODUCT i j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Cat

Methods

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

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

repMap :: forall (a :: COPRODUCT i j) (b :: COPRODUCT i j). (a ~> b) -> ((p :|||: q) % a) ~> ((p :|||: q) % b) Source Comments #

(Representable l, Representable r, HasBinaryProducts k) => Representable (l :&&: r :: k -> (x, y) -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Instance.Fam

Methods

index :: forall (a :: k) (b :: (x, y)). (l :&&: r) a b -> a ~> ((l :&&: r) % b) Source Comments #

tabulate :: forall (b :: (x, y)) (a :: k). Ob b => (a ~> ((l :&&: r) % b)) -> (l :&&: r) a b Source Comments #

repMap :: forall (a :: (x, y)) (b :: (x, y)). (a ~> b) -> ((l :&&: r) % a) ~> ((l :&&: r) % b) 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 #

HasLimits j k => Representable (LimitAdj j :: COREPK b k -> REPK a k -> Type) Source Comments #

Colimit j -| Limit j

Instance details

Defined in Proarrow.Adjunction

Methods

index :: forall (a0 :: COREPK b k) (b0 :: REPK a k). LimitAdj j a0 b0 -> a0 ~> ((LimitAdj j :: COREPK b k -> REPK a k -> Type) % b0) Source Comments #

tabulate :: forall (b0 :: REPK a k) (a0 :: COREPK b k). Ob b0 => (a0 ~> ((LimitAdj j :: COREPK b k -> REPK a k -> Type) % b0)) -> LimitAdj j a0 b0 Source Comments #

repMap :: forall (a0 :: REPK a k) (b0 :: REPK a k). (a0 ~> b0) -> ((LimitAdj j :: COREPK b k -> REPK a k -> Type) % a0) ~> ((LimitAdj j :: COREPK b k -> REPK a k -> Type) % b0) Source Comments #

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

Defined in Proarrow.Category.Instance.Product

Methods

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

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

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

(Profunctor p, Representable f, Representable g, Reifies s (ProfSq p (Id :: k2 -> k2 -> Type) f g)) => Representable (CotabulatorFactorizer s p f g :: k2 -> COLLAGE p -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Bicategory.Prof

Methods

index :: forall (a :: k2) (b :: COLLAGE p). CotabulatorFactorizer s p f g a b -> a ~> (CotabulatorFactorizer s p f g % b) Source Comments #

tabulate :: forall (b :: COLLAGE p) (a :: k2). Ob b => (a ~> (CotabulatorFactorizer s p f g % b)) -> CotabulatorFactorizer s p f g a b Source Comments #

repMap :: forall (a :: COLLAGE p) (b :: COLLAGE p). (a ~> b) -> (CotabulatorFactorizer s p f g % a) ~> (CotabulatorFactorizer s p f g % b) Source Comments #

repObj :: forall {j} {k} (p :: j +-> k) (a :: j). (Representable p, Ob a) => Obj (p % a) Source Comments #

withRepOb :: forall {j} {k} (p :: j +-> k) (a :: j) r. (Representable p, Ob a) => (Ob (p % a) => r) -> r Source Comments #

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

trivialRep :: forall {j} {k} p (a :: j). (Representable p, Ob a) => p (p % a) a Source Comments #

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

Constructors

CorepStar 

Fields

Instances

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

Defined in Proarrow.Profunctor.Representable

Methods

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

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

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

Defined in Proarrow.Profunctor.Representable

Methods

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

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

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

Corepresentable f => Proadjunction (CorepStar f :: k -> j -> Type) (f :: k +-> j) Source Comments # 
Instance details

Defined in Proarrow.Adjunction

Methods

unit :: forall (a :: j). Ob a => (f :.: CorepStar f) a a Source Comments #

counit :: (CorepStar f :.: f) :~> ((~>) :: CAT k) Source Comments #

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

Defined in Proarrow.Profunctor.Representable

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

mapCorepStar :: forall {k} {j} (p :: k +-> j) (q :: k +-> j). (Corepresentable p, Corepresentable q) => (p ~> q) -> CorepStar q ~> CorepStar p Source Comments #

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

Constructors

RepCostar 

Fields

Instances

Instances details
Representable f => Proadjunction (f :: k +-> j) (RepCostar f :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Adjunction

Methods

unit :: forall (a :: k). Ob a => (RepCostar f :.: f) a a Source Comments #

counit :: (f :.: RepCostar f) :~> ((~>) :: CAT j) Source Comments #

(Representable p, Discrete j, Thin k) => ThinProfunctor (RepCostar p :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Representable

Methods

arr :: forall (a :: k) (b :: j). (Ob a, Ob b, HasArrow (RepCostar p) a b) => RepCostar p a b Source Comments #

withArr :: forall (a :: k) (b :: j) r. RepCostar p a b -> (HasArrow (RepCostar p) a b => r) -> r Source Comments #

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

Defined in Proarrow.Profunctor.Representable

Methods

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

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> RepCostar p a b -> r 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 #

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

Defined in Proarrow.Profunctor.Representable

type (RepCostar p :: k -> j -> Type) %% (a :: k) = p % a
type HasArrow (RepCostar p :: k -> j -> Type) (a :: k) (b :: j) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Representable

type HasArrow (RepCostar p :: k -> j -> Type) (a :: k) (b :: j) = (p % a) ~ b

mapRepCostar :: forall {k} {j} (p :: k +-> j) (q :: k +-> j). (Representable p, Representable q) => (p ~> q) -> RepCostar q ~> RepCostar p Source Comments #

flipRep :: forall {k1} (p :: k1 +-> k1). Representable p => (((~>) :: CAT k1) :~> p) -> RepCostar p :~> ((~>) :: CAT k1) Source Comments #

unflipRep :: forall {k1} (p :: k1 +-> k1). Representable p => (RepCostar p :~> ((~>) :: CAT k1)) -> ((~>) :: CAT k1) :~> p Source Comments #

flipCorep :: forall {k1} (p :: k1 +-> k1). Corepresentable p => (((~>) :: CAT k1) :~> p) -> CorepStar p :~> ((~>) :: CAT k1) Source Comments #

unflipCorep :: forall {k1} (p :: k1 +-> k1). Corepresentable p => (CorepStar p :~> ((~>) :: CAT k1)) -> ((~>) :: CAT k1) :~> p Source Comments #

data Rep (f :: j +-> k) (a :: k) (b :: j) where Source Comments #

Constructors

Rep 

Fields

  • :: forall {j} {k} (f :: j +-> k) (a :: k) (b :: j). Ob b
     
  • => { unRep :: a ~> (f @ b)
     
  •    } -> Rep f a b
     

Instances

Instances details
MonoidalProfunctor (Rep Forget) Source Comments #

Forget is a lax monoidal functor

Instance details

Defined in Proarrow.Category.Instance.Linear

Methods

par0 :: Rep Forget (Unit :: Type) (Unit :: LINEAR) Source Comments #

par :: forall x1 (x2 :: LINEAR) y1 (y2 :: LINEAR). Rep Forget x1 x2 -> Rep Forget y1 y2 -> Rep Forget (x1 ** y1) (x2 ** y2) Source Comments #

FunctorForRep f => Profunctor (Rep f :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Representable

Methods

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

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

Corepresentable (Rep Forget) Source Comments #

By creating the left adjoint to the forgetful functor, we obtain the free-forgetful adjunction between Hask and LINEAR

Instance details

Defined in Proarrow.Category.Instance.Linear

Associated Types

type (Rep Forget) %% (a :: Type) 
Instance details

Defined in Proarrow.Category.Instance.Linear

type (Rep Forget) %% (a :: Type) = 'L (Ur a)

Methods

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

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

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

(Closed k, Ob a) => Corepresentable (Rep (Exponential ('OP a)) :: k -> k -> Type) Source Comments #

The curry/uncurry adjunction.

Instance details

Defined in Proarrow.Object.Exponential

Methods

coindex :: forall (a0 :: k) (b :: k). Rep (Exponential ('OP a)) a0 b -> (Rep (Exponential ('OP a)) %% a0) ~> b Source Comments #

cotabulate :: forall (a0 :: k) (b :: k). Ob a0 => ((Rep (Exponential ('OP a)) %% a0) ~> b) -> Rep (Exponential ('OP a)) a0 b Source Comments #

corepMap :: forall (a0 :: k) (b :: k). (a0 ~> b) -> (Rep (Exponential ('OP a)) %% a0) ~> (Rep (Exponential ('OP a)) %% b) Source Comments #

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

Defined in Proarrow.Profunctor.Representable

Methods

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

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

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

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

Defined in Proarrow.Profunctor.Cofree

Methods

coindex :: forall (a :: SUBCAT ob) (b :: k). Rep (CofreeSub ob) a b -> (Rep (CofreeSub ob) %% a) ~> b Source Comments #

cotabulate :: forall (a :: SUBCAT ob) (b :: k). Ob a => ((Rep (CofreeSub ob) %% a) ~> b) -> Rep (CofreeSub ob) a b Source Comments #

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

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

Defined in Proarrow.Category.Instance.Linear

type (Rep Forget) %% (a :: Type) = 'L (Ur a)
type (Rep (Exponential ('OP a)) :: k -> k -> Type) %% (b :: k) Source Comments # 
Instance details

Defined in Proarrow.Object.Exponential

type (Rep (Exponential ('OP a)) :: k -> k -> Type) %% (b :: k) = b ** a
type (Rep f :: k -> j -> Type) % (a :: j) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Representable

type (Rep f :: k -> j -> Type) % (a :: j) = f @ a
type (Rep (CofreeSub ob) :: SUBCAT ob -> k -> Type) %% (a :: SUBCAT ob) Source Comments # 
Instance details

Defined in Proarrow.Profunctor.Cofree

type (Rep (CofreeSub ob) :: SUBCAT ob -> k -> Type) %% (a :: SUBCAT ob) = UN ('SUB :: k -> SUBCAT ob) a