Safe Haskell | None |
---|---|
Language | GHC2024 |
Proarrow.Profunctor.Representable
Synopsis
- class Profunctor p => Representable (p :: j +-> k) where
- repObj :: forall {j} {k} (p :: j +-> k) (a :: j). (Representable p, Ob a) => Obj (p % a)
- withRepOb :: forall {j} {k} (p :: j +-> k) (a :: j) r. (Representable p, Ob a) => (Ob (p % a) => r) -> r
- 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
- trivialRep :: forall {j} {k} p (a :: j). (Representable p, Ob a) => p (p % a) a
- data CorepStar (p :: k +-> j) (a :: k) (b :: j) where
- data RepCostar (p :: k +-> j) (a :: k) (b :: j) where
- flipRep :: forall {k1} {k} (p :: k1 +-> k) (q :: k +-> k1). (Representable p, Corepresentable q) => (RepCostar p :~> q) -> CorepStar q :~> p
- class (CategoryOf j, CategoryOf k) => FunctorForRep (f :: j +-> k) where
- data Rep (f :: j +-> k) (a :: k) (b :: j) where
Documentation
class Profunctor p => Representable (p :: j +-> k) where 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
Representable Forget Source Comments # | |||||
Defined in Proarrow.Category.Instance.Linear | |||||
Representable Forget Source Comments # | |||||
Defined in Proarrow.Category.Instance.Simplex Associated Types
| |||||
Representable Free Source Comments # | |||||
Defined in Proarrow.Category.Instance.Linear | |||||
CategoryOf k => Representable (Id :: k -> k -> Type) Source Comments # | |||||
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 # | |||||
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 # | |||||
Defined in Proarrow.Profunctor.Representable Associated Types
| |||||
(CategoryOf j, CategoryOf k, Ob c) => Representable (Constant c :: k -> j -> Type) Source Comments # | |||||
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 # | |||||
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 # | |||||
Defined in Proarrow.Profunctor.Representable | |||||
Functor f => Representable (Star f :: k -> j -> Type) Source Comments # | |||||
Defined in Proarrow.Profunctor.Star | |||||
Representable p => Representable (Wrapped p :: k -> j -> Type) Source Comments # | |||||
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 # | |||||
(Ob w, MonoidalAction m k) => Representable (Writer w :: k -> k -> Type) Source Comments # | |||||
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 # | |||||
(HasLimits j2 k, Representable d) => Representable (Ran ('OP j2) d :: k -> j1 -> Type) Source Comments # | |||||
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 # | |||||
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 # | |||||
(CategoryOf j, CategoryOf k) => Representable (LftCat :: COPRODUCT j k -> j -> Type) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Cat Methods index :: forall (a :: COPRODUCT j k) (b :: j). LftCat a b -> a ~> ((LftCat :: COPRODUCT j k -> j -> Type) % b) Source Comments # tabulate :: forall (b :: j) (a :: COPRODUCT j k). Ob b => (a ~> ((LftCat :: COPRODUCT j k -> j -> Type) % b)) -> LftCat a b Source Comments # repMap :: forall (a :: j) (b :: j). (a ~> b) -> ((LftCat :: COPRODUCT j k -> j -> Type) % a) ~> ((LftCat :: COPRODUCT j k -> j -> Type) % b) Source Comments # | |||||
HasCofree ob => Representable (CofreeSub ob :: SUBCAT ob -> j -> Type) Source Comments # | |||||
Defined in Proarrow.Profunctor.Cofree Methods index :: forall (a :: SUBCAT ob) (b :: j). CofreeSub ob a b -> a ~> (CofreeSub ob % b) Source Comments # tabulate :: forall (b :: j) (a :: SUBCAT ob). Ob b => (a ~> (CofreeSub ob % b)) -> CofreeSub ob a b Source Comments # repMap :: forall (a :: j) (b :: j). (a ~> b) -> (CofreeSub ob % a) ~> (CofreeSub ob % b) Source Comments # | |||||
HasFree ob => Representable (FreeSub ob :: SUBCAT ob -> j -> Type) Source Comments # | |||||
Defined in Proarrow.Profunctor.Free Methods index :: forall (a :: SUBCAT ob) (b :: j). FreeSub ob a b -> a ~> (FreeSub ob % b) Source Comments # tabulate :: forall (b :: j) (a :: SUBCAT ob). Ob b => (a ~> (FreeSub ob % b)) -> FreeSub ob a b Source Comments # repMap :: forall (a :: j) (b :: j). (a ~> b) -> (FreeSub ob % a) ~> (FreeSub ob % b) Source Comments # | |||||
(CategoryOf j, CategoryOf k) => Representable (RgtCat :: COPRODUCT j k -> k -> Type) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Cat Methods index :: forall (a :: COPRODUCT j k) (b :: k). RgtCat a b -> a ~> ((RgtCat :: COPRODUCT j k -> k -> Type) % b) Source Comments # tabulate :: forall (b :: k) (a :: COPRODUCT j k). Ob b => (a ~> ((RgtCat :: COPRODUCT j k -> k -> Type) % b)) -> RgtCat a b Source Comments # repMap :: forall (a :: k) (b :: k). (a ~> b) -> ((RgtCat :: COPRODUCT j k -> k -> Type) % a) ~> ((RgtCat :: COPRODUCT j k -> k -> Type) % b) Source Comments # | |||||
(Representable p, Representable q) => Representable (p :&&&: q :: (i, j2) -> j1 -> Type) Source Comments # | |||||
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 # | |||||
Defined in Proarrow.Category.Instance.Collage | |||||
Profunctor p => Representable (InjR p :: COLLAGE p -> j1 -> Type) Source Comments # | |||||
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 # | |||||
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 # | |||||
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 # | |||||
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 # | |||||
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 # | |||||
Closed k => Representable (ExponentialFunctor :: k -> (OPPOSITE k, k) -> Type) Source Comments # | |||||
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 # | |||||
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 # | |||||
(CategoryOf j, CategoryOf k) => Representable (FstCat :: j -> (j, k) -> Type) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Cat Methods index :: forall (a :: j) (b :: (j, k)). FstCat a b -> a ~> ((FstCat :: j -> (j, k) -> Type) % b) Source Comments # tabulate :: forall (b :: (j, k)) (a :: j). Ob b => (a ~> ((FstCat :: j -> (j, k) -> Type) % b)) -> FstCat a b Source Comments # repMap :: forall (a :: (j, k)) (b :: (j, k)). (a ~> b) -> ((FstCat :: j -> (j, k) -> Type) % a) ~> ((FstCat :: j -> (j, k) -> Type) % b) Source Comments # | |||||
(CategoryOf j, CategoryOf k) => Representable (SndCat :: k -> (j, k) -> Type) Source Comments # | |||||
Defined in Proarrow.Category.Instance.Cat Methods index :: forall (a :: k) (b :: (j, k)). SndCat a b -> a ~> ((SndCat :: k -> (j, k) -> Type) % b) Source Comments # tabulate :: forall (b :: (j, k)) (a :: k). Ob b => (a ~> ((SndCat :: k -> (j, k) -> Type) % b)) -> SndCat a b Source Comments # repMap :: forall (a :: (j, k)) (b :: (j, k)). (a ~> b) -> ((SndCat :: k -> (j, k) -> Type) % a) ~> ((SndCat :: k -> (j, k) -> Type) % b) Source Comments # | |||||
(Representable p, Representable q) => Representable (p :|||: q :: k -> COPRODUCT i j -> Type) Source Comments # | |||||
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 p, forall (a :: k). ob a => ob (p % a)) => Representable (Sub p :: SUBCAT ob -> SUBCAT ob -> Type) Source Comments # | |||||
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 # | |||||
(Representable p, Representable q) => Representable (p :**: q :: (k1, k2) -> (j1, j2) -> Type) Source Comments # | |||||
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 # | |||||
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 | |
Instances
Corepresentable p => Profunctor (CorepStar p :: k -> j -> Type) Source Comments # | |
Corepresentable p => Representable (CorepStar p :: k -> j -> Type) Source Comments # | |
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 # | |
type (CorepStar p :: k -> j -> Type) % (a :: j) Source Comments # | |
Defined in Proarrow.Profunctor.Representable |
data RepCostar (p :: k +-> j) (a :: k) (b :: j) where Source Comments #
Constructors
RepCostar | |
Instances
flipRep :: forall {k1} {k} (p :: k1 +-> k) (q :: k +-> k1). (Representable p, Corepresentable q) => (RepCostar p :~> q) -> CorepStar q :~> p Source Comments #
class (CategoryOf j, CategoryOf k) => FunctorForRep (f :: j +-> k) where Source Comments #
A perfectly valid functor definition, but hard to use.
So we only use it to easily make representable profunctors with Rep
.
Instances
CategoryOf k => FunctorForRep (Initiate :: VOID +-> k) Source Comments # | |
CategoryOf k => FunctorForRep (Terminate :: k +-> ()) Source Comments # | |
Representable d => FunctorForRep (EndLimit d :: () +-> Type) Source Comments # | |
(HasBinaryProducts k, Representable d) => FunctorForRep (ProductLimit d :: () +-> k) Source Comments # | |
Defined in Proarrow.Category.Limit Methods fmap :: forall (a :: ()) (b :: ()). (a ~> b) -> (ProductLimit d @ a) ~> (ProductLimit d @ b) Source Comments # | |
HasTerminalObject k => FunctorForRep (TerminalLimit d :: () +-> k) Source Comments # | |
Defined in Proarrow.Category.Limit Methods fmap :: forall (a :: ()) (b :: ()). (a ~> b) -> (TerminalLimit d @ a) ~> (TerminalLimit d @ b) Source Comments # | |
(Representable d, Powered v k, Ob n) => FunctorForRep (PowerLimit n d :: () +-> k) Source Comments # | |
Defined in Proarrow.Category.Limit Methods fmap :: forall (a :: ()) (b :: ()). (a ~> b) -> (PowerLimit n d @ a) ~> (PowerLimit n d @ b) Source Comments # |
data Rep (f :: j +-> k) (a :: k) (b :: j) where Source Comments #
Constructors
Rep | |
Instances
FunctorForRep f => Profunctor (Rep f :: k -> j -> Type) Source Comments # | |
FunctorForRep f => Representable (Rep f :: k -> j -> Type) Source Comments # | |
Defined in Proarrow.Profunctor.Representable | |
type (Rep f :: k -> j -> Type) % (a :: j) Source Comments # | |
Defined in Proarrow.Profunctor.Representable |