| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Proarrow.Profunctor.Instance.List
Description
The category of lists of objects of LIST kk, whose arrows are componentwise lists of arrows.
lifts a profunctor List pp componentwise to lists. Lists of objects are the arity-indexing used by
promonoidal categories (Proarrow.Category.Promonoidal) and by cones and cocones.
Synopsis
- data LIST k = L [k]
- data List (p :: j +-> k) (as :: LIST k) (bs :: LIST j) where
- mkCons :: forall {k1} {k2} p (a :: k2) (b :: k1) (as :: [k2]) (bs :: [k1]). Profunctor p => p a b -> List p ('L as) ('L bs) -> List p ('L (a ': as)) ('L (b ': bs))
- foldList :: forall {k1} {k2} p (as :: LIST k2) (bs :: LIST k1). MonoidalProfunctor p => List p as bs -> p (Fold (UN ('L :: [k2] -> LIST k2) as)) (Fold (UN ('L :: [k1] -> LIST k1) bs))
Documentation
Constructors
| L [k] |
Instances
| CategoryOf k => Monoidal (LIST k) Source Github # | The free monoidal category on a category. | ||||
Defined in Proarrow.Profunctor.Instance.List Associated Types
Methods withOb2 :: forall (a :: LIST k) (b :: LIST k) r. (Ob a, Ob b) => (Ob (a ** b) => r) -> r Source Github # leftUnitor :: forall (a :: LIST k). Ob a => ((Unit :: LIST k) ** a) ~> a Source Github # leftUnitorInv :: forall (a :: LIST k). Ob a => a ~> ((Unit :: LIST k) ** a) Source Github # rightUnitor :: forall (a :: LIST k). Ob a => (a ** (Unit :: LIST k)) ~> a Source Github # rightUnitorInv :: forall (a :: LIST k). Ob a => a ~> (a ** (Unit :: LIST k)) Source Github # associator :: forall (a :: LIST k) (b :: LIST k) (c :: LIST k). (Ob a, Ob b, Ob c) => ((a ** b) ** c) ~> (a ** (b ** c)) Source Github # associatorInv :: forall (a :: LIST k) (b :: LIST k) (c :: LIST k). (Ob a, Ob b, Ob c) => (a ** (b ** c)) ~> ((a ** b) ** c) Source Github # | |||||
| CategoryOf k => CategoryOf (LIST k) Source Github # | The category of lists of arrows. | ||||
Defined in Proarrow.Profunctor.Instance.List | |||||
| Monoidal k => MonoidalProfunctor (Tensor :: k -> LIST k -> Type) Source Github # | |||||
| Monoidal k => Profunctor (Tensor :: k -> LIST k -> Type) Source Github # | |||||
Defined in Proarrow.Category.Promonoidal Methods dimap :: forall (c :: k) (a :: k) (b :: LIST k) (d :: LIST k). (c ~> a) -> (b ~> d) -> Tensor a b -> Tensor c d Source Github # lmap :: forall (c :: k) (a :: k) (b :: LIST k). (c ~> a) -> Tensor a b -> Tensor c b Source Github # rmap :: forall (b :: LIST k) (d :: LIST k) (a :: k). (b ~> d) -> Tensor a b -> Tensor a d Source Github # (\\) :: forall (a :: k) (b :: LIST k) r. ((Ob a, Ob b) => r) -> Tensor a b -> r Source Github # | |||||
| Monoidal k => Representable (Tensor :: k -> LIST k -> Type) Source Github # | |||||
Defined in Proarrow.Category.Promonoidal Methods index :: forall (a :: k) (b :: LIST k). Tensor a b -> a ~> ((Tensor :: k -> LIST k -> Type) % b) Source Github # tabulate :: forall (b :: LIST k) (a :: k). Ob b => (a ~> ((Tensor :: k -> LIST k -> Type) % b)) -> Tensor a b Source Github # repMap :: forall (a :: LIST k) (b :: LIST k). (a ~> b) -> ((Tensor :: k -> LIST k -> Type) % a) ~> ((Tensor :: k -> LIST k -> Type) % b) Source Github # repUniv :: forall (a :: LIST k). Ob a => Tensor ((Tensor :: k -> LIST k -> Type) % a) a Source Github # | |||||
| HasCoproducts k => MonoidalProfunctor (Cocone :: LIST k -> COPROD k -> Type) Source Github # | |||||
| HasProducts k => MonoidalProfunctor (Cone :: PROD k -> LIST k -> Type) Source Github # | |||||
| CategoryOf k => Profunctor (Cocone :: LIST k -> COPROD k -> Type) Source Github # | |||||
Defined in Proarrow.Profunctor.Instance.Cocone Methods dimap :: forall (c :: LIST k) (a :: LIST k) (b :: COPROD k) (d :: COPROD k). (c ~> a) -> (b ~> d) -> Cocone a b -> Cocone c d Source Github # lmap :: forall (c :: LIST k) (a :: LIST k) (b :: COPROD k). (c ~> a) -> Cocone a b -> Cocone c b Source Github # rmap :: forall (b :: COPROD k) (d :: COPROD k) (a :: LIST k). (b ~> d) -> Cocone a b -> Cocone a d Source Github # (\\) :: forall (a :: LIST k) (b :: COPROD k) r. ((Ob a, Ob b) => r) -> Cocone a b -> r Source Github # | |||||
| CategoryOf k => Profunctor (Cone :: PROD k -> LIST k -> Type) Source Github # | |||||
Defined in Proarrow.Profunctor.Instance.Cone Methods dimap :: forall (c :: PROD k) (a :: PROD k) (b :: LIST k) (d :: LIST k). (c ~> a) -> (b ~> d) -> Cone a b -> Cone c d Source Github # lmap :: forall (c :: PROD k) (a :: PROD k) (b :: LIST k). (c ~> a) -> Cone a b -> Cone c b Source Github # rmap :: forall (b :: LIST k) (d :: LIST k) (a :: PROD k). (b ~> d) -> Cone a b -> Cone a d Source Github # (\\) :: forall (a :: PROD k) (b :: LIST k) r. ((Ob a, Ob b) => r) -> Cone a b -> r Source Github # | |||||
| Profunctor p => MonoidalProfunctor (List p :: LIST k -> LIST j -> Type) Source Github # | The free monoidal profunctor on a profunctor. | ||||
| (CategoryOf j, CategoryOf k, Ob ps) => Profunctor (PList ps :: LIST k -> LIST j -> Type) Source Github # | |||||
Defined in Proarrow.Category.Promonoidal Methods dimap :: forall (c :: LIST k) (a :: LIST k) (b :: LIST j) (d :: LIST j). (c ~> a) -> (b ~> d) -> PList ps a b -> PList ps c d Source Github # lmap :: forall (c :: LIST k) (a :: LIST k) (b :: LIST j). (c ~> a) -> PList ps a b -> PList ps c b Source Github # rmap :: forall (b :: LIST j) (d :: LIST j) (a :: LIST k). (b ~> d) -> PList ps a b -> PList ps a d Source Github # (\\) :: forall (a :: LIST k) (b :: LIST j) r. ((Ob a, Ob b) => r) -> PList ps a b -> r Source Github # | |||||
| Profunctor p => Profunctor (List p :: LIST k -> LIST j -> Type) Source Github # | |||||
Defined in Proarrow.Profunctor.Instance.List Methods dimap :: forall (c :: LIST k) (a :: LIST k) (b :: LIST j) (d :: LIST j). (c ~> a) -> (b ~> d) -> List p a b -> List p c d Source Github # lmap :: forall (c :: LIST k) (a :: LIST k) (b :: LIST j). (c ~> a) -> List p a b -> List p c b Source Github # rmap :: forall (b :: LIST j) (d :: LIST j) (a :: LIST k). (b ~> d) -> List p a b -> List p a d Source Github # (\\) :: forall (a :: LIST k) (b :: LIST j) r. ((Ob a, Ob b) => r) -> List p a b -> r Source Github # | |||||
| Representable p => Representable (List p :: LIST k -> LIST j -> Type) Source Github # | |||||
Defined in Proarrow.Profunctor.Instance.List Methods index :: forall (a :: LIST k) (b :: LIST j). List p a b -> a ~> (List p % b) Source Github # tabulate :: forall (b :: LIST j) (a :: LIST k). Ob b => (a ~> (List p % b)) -> List p a b Source Github # repMap :: forall (a :: LIST j) (b :: LIST j). (a ~> b) -> (List p % a) ~> (List p % b) Source Github # repUniv :: forall (a :: LIST j). Ob a => List p (List p % a) a Source Github # | |||||
| (CategoryOf j, CategoryOf k) => Functor (PList :: LIST (j +-> k) -> LIST k -> LIST j -> Type) Source Github # | |||||
| (Profunctor tk, Profunctor tj) => Functor (Day tk tj :: LIST (j +-> k) -> k -> j -> Type) Source Github # | |||||
| DaggerProfunctor p => DaggerProfunctor (List p :: LIST j -> LIST j -> Type) Source Github # | |||||
| Promonad p => Promonad (List p :: LIST j -> LIST j -> Type) Source Github # | |||||
| Functor (List :: (j +-> k) -> LIST k -> LIST j -> Type) Source Github # | |||||
| type Unit Source Github # | |||||
Defined in Proarrow.Profunctor.Instance.List | |||||
| type (~>) Source Github # | |||||
Defined in Proarrow.Profunctor.Instance.List | |||||
| type Ob (as :: LIST k) Source Github # | |||||
| type (p :: LIST k) ** (q :: LIST k) Source Github # | |||||
| type (Tensor :: k -> LIST k -> Type) % (as :: LIST k) Source Github # | |||||
| type (List p :: LIST k -> LIST j -> Type) % ('L (a ': as) :: LIST j) Source Github # | |||||
| type (List p :: LIST k -> LIST j -> Type) % ('L ('[] :: [j]) :: LIST j) Source Github # | |||||
data List (p :: j +-> k) (as :: LIST k) (bs :: LIST j) where Source Github #
Lifts p componentwise to lists: an arrow between equal-length lists of objects is a list of
p-arrows.
Constructors
| Nil :: forall {j} {k} (p :: j +-> k). List p ('L ('[] :: [k])) ('L ('[] :: [j])) | |
| Cons :: forall {k} {j} (as1 :: [k]) (bs1 :: [j]) (p :: j +-> k) (a :: k) (b :: j). (IsList as1, IsList bs1) => p a b -> List p ('L as1) ('L bs1) -> List p ('L (a ': as1)) ('L (b ': bs1)) |
Instances
| Profunctor p => MonoidalProfunctor (List p :: LIST k -> LIST j -> Type) Source Github # | The free monoidal profunctor on a profunctor. |
| Profunctor p => Profunctor (List p :: LIST k -> LIST j -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Instance.List Methods dimap :: forall (c :: LIST k) (a :: LIST k) (b :: LIST j) (d :: LIST j). (c ~> a) -> (b ~> d) -> List p a b -> List p c d Source Github # lmap :: forall (c :: LIST k) (a :: LIST k) (b :: LIST j). (c ~> a) -> List p a b -> List p c b Source Github # rmap :: forall (b :: LIST j) (d :: LIST j) (a :: LIST k). (b ~> d) -> List p a b -> List p a d Source Github # (\\) :: forall (a :: LIST k) (b :: LIST j) r. ((Ob a, Ob b) => r) -> List p a b -> r Source Github # | |
| Representable p => Representable (List p :: LIST k -> LIST j -> Type) Source Github # | |
Defined in Proarrow.Profunctor.Instance.List Methods index :: forall (a :: LIST k) (b :: LIST j). List p a b -> a ~> (List p % b) Source Github # tabulate :: forall (b :: LIST j) (a :: LIST k). Ob b => (a ~> (List p % b)) -> List p a b Source Github # repMap :: forall (a :: LIST j) (b :: LIST j). (a ~> b) -> (List p % a) ~> (List p % b) Source Github # repUniv :: forall (a :: LIST j). Ob a => List p (List p % a) a Source Github # | |
| DaggerProfunctor p => DaggerProfunctor (List p :: LIST j -> LIST j -> Type) Source Github # | |
| Promonad p => Promonad (List p :: LIST j -> LIST j -> Type) Source Github # | |
| Functor (List :: (j +-> k) -> LIST k -> LIST j -> Type) Source Github # | |
| type (List p :: LIST k -> LIST j -> Type) % ('L (a ': as) :: LIST j) Source Github # | |
| type (List p :: LIST k -> LIST j -> Type) % ('L ('[] :: [j]) :: LIST j) Source Github # | |