proarrow
Safe HaskellNone
LanguageGHC2024

Proarrow.Profunctor.List

Documentation

data LIST k Source Github #

Constructors

L [k] 

Instances

Instances details
HasFreeK CategoryOf Monoidal LIST Source Github # 
Instance details

Defined in Proarrow.Profunctor.Free

Associated Types

type Lift CategoryOf Monoidal LIST (a :: k) 
Instance details

Defined in Proarrow.Profunctor.Free

type Lift CategoryOf Monoidal LIST (a :: k) = 'L '[a]
type Retract CategoryOf Monoidal LIST (a :: LIST k) 
Instance details

Defined in Proarrow.Profunctor.Free

type Retract CategoryOf Monoidal LIST (a :: LIST k) = Fold (UN ('L :: [k] -> LIST k) a)

Methods

liftK :: forall k (x :: k) (y :: k). CategoryOf k => (x ~> y) -> Lift CategoryOf Monoidal LIST x ~> Lift CategoryOf Monoidal LIST y Source Github #

retractK :: forall k (x :: LIST k) (y :: LIST k). Monoidal k => (x ~> y) -> Retract CategoryOf Monoidal LIST x ~> Retract CategoryOf Monoidal LIST y Source Github #

CategoryOf k => Monoidal (LIST k) Source Github #

The free monoidal category on a category.

Instance details

Defined in Proarrow.Profunctor.List

Associated Types

type Unit 
Instance details

Defined in Proarrow.Profunctor.List

type Unit = 'L ('[] :: [k])

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.

Instance details

Defined in Proarrow.Profunctor.List

Associated Types

type (~>) 
Instance details

Defined in Proarrow.Profunctor.List

type (~>) = List ((~>) :: CAT k)
Monoidal k => MonoidalProfunctor (Tensor :: k -> LIST k -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Promonoidal

Methods

par0 :: Tensor (Unit :: k) (Unit :: LIST k) Source Github #

par :: forall (x1 :: k) (x2 :: LIST k) (y1 :: k) (y2 :: LIST k). Tensor x1 x2 -> Tensor y1 y2 -> Tensor (x1 ** y1) (x2 ** y2) Source Github #

Monoidal k => Profunctor (Tensor :: k -> LIST k -> Type) Source Github # 
Instance details

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 #

(\\) :: 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 # 
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 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 #

HasCoproducts k => MonoidalProfunctor (Cocone :: LIST k -> COPROD k -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.Pushout

Methods

par0 :: Cocone (Unit :: LIST k) (Unit :: COPROD k) Source Github #

par :: forall (x1 :: LIST k) (x2 :: COPROD k) (y1 :: LIST k) (y2 :: COPROD k). Cocone x1 x2 -> Cocone y1 y2 -> Cocone (x1 ** y1) (x2 ** y2) Source Github #

HasProducts k => MonoidalProfunctor (Cone :: PROD k -> LIST k -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.Pullback

Methods

par0 :: Cone (Unit :: PROD k) (Unit :: LIST k) Source Github #

par :: forall (x1 :: PROD k) (x2 :: LIST k) (y1 :: PROD k) (y2 :: LIST k). Cone x1 x2 -> Cone y1 y2 -> Cone (x1 ** y1) (x2 ** y2) Source Github #

CategoryOf k => Profunctor (Cocone :: LIST k -> COPROD k -> Type) Source Github # 
Instance details

Defined in Proarrow.Object.Pushout

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 #

(\\) :: 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 # 
Instance details

Defined in Proarrow.Object.Pullback

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 #

(\\) :: 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.

Instance details

Defined in Proarrow.Profunctor.List

Methods

par0 :: List p (Unit :: LIST k) (Unit :: LIST j) Source Github #

par :: forall (x1 :: LIST k) (x2 :: LIST j) (y1 :: LIST k) (y2 :: LIST j). List p x1 x2 -> List p y1 y2 -> List p (x1 ** y1) (x2 ** y2) Source Github #

(CategoryOf j, CategoryOf k, Ob ps) => Profunctor (PList ps :: LIST k -> LIST j -> Type) Source Github # 
Instance details

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 #

(\\) :: 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 # 
Instance details

Defined in Proarrow.Profunctor.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 #

(\\) :: 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 # 
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 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 #

(CategoryOf j, CategoryOf k) => Functor (PList :: LIST (j +-> k) -> LIST k -> LIST j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Promonoidal

Methods

map :: forall (a :: LIST (j +-> k)) (b :: LIST (j +-> k)). (a ~> b) -> PList a ~> PList b Source Github #

(Profunctor tk, Profunctor tj) => Functor (Day tk tj :: LIST (j +-> k) -> k -> j -> Type) Source Github # 
Instance details

Defined in Proarrow.Category.Promonoidal

Methods

map :: forall (a :: LIST (j +-> k)) (b :: LIST (j +-> k)). (a ~> b) -> Day tk tj a ~> Day tk tj b Source Github #

DaggerProfunctor p => DaggerProfunctor (List p :: LIST j -> LIST j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.List

Methods

dagger :: forall (a :: LIST j) (b :: LIST j). List p a b -> List p b a Source Github #

Promonad p => Promonad (List p :: LIST j -> LIST j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.List

Methods

id :: forall (a :: LIST j). Ob a => List p a a Source Github #

(.) :: forall (b :: LIST j) (c :: LIST j) (a :: LIST j). List p b c -> List p a b -> List p a c Source Github #

Functor (List :: (j +-> k) -> LIST k -> LIST j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.List

Methods

map :: forall (a :: j +-> k) (b :: j +-> k). (a ~> b) -> List a ~> List b Source Github #

type Lift CategoryOf Monoidal LIST (a :: k) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Free

type Lift CategoryOf Monoidal LIST (a :: k) = 'L '[a]
type Retract CategoryOf Monoidal LIST (a :: LIST k) Source Github # 
Instance details

Defined in Proarrow.Profunctor.Free

type Retract CategoryOf Monoidal LIST (a :: LIST k) = Fold (UN ('L :: [k] -> LIST k) a)
type Unit Source Github # 
Instance details

Defined in Proarrow.Profunctor.List

type Unit = 'L ('[] :: [k])
type (~>) Source Github # 
Instance details

Defined in Proarrow.Profunctor.List

type (~>) = List ((~>) :: CAT k)
type Ob (as :: LIST k) Source Github # 
Instance details

Defined in Proarrow.Profunctor.List

type Ob (as :: LIST k) = (Is ('L :: [k] -> LIST k) as, IsList (UN ('L :: [k] -> LIST k) as))
type (p :: LIST k) ** (q :: LIST k) Source Github # 
Instance details

Defined in Proarrow.Profunctor.List

type (p :: LIST k) ** (q :: LIST k) = 'L (UN ('L :: [k] -> LIST k) p ++ UN ('L :: [k] -> LIST k) q)
type (Tensor :: k -> LIST k -> Type) % (as :: LIST k) Source Github # 
Instance details

Defined in Proarrow.Category.Promonoidal

type (Tensor :: k -> LIST k -> Type) % (as :: LIST k) = Fold (UN ('L :: [k] -> LIST k) as)
type UN ('L :: [k] -> LIST k) ('L as :: LIST k) Source Github # 
Instance details

Defined in Proarrow.Profunctor.List

type UN ('L :: [k] -> LIST k) ('L as :: LIST k) = as
type (List p :: LIST k -> LIST j -> Type) % ('L (a ': as) :: LIST j) Source Github # 
Instance details

Defined in Proarrow.Profunctor.List

type (List p :: LIST k -> LIST j -> Type) % ('L (a ': as) :: LIST j) = 'L ((p % a) ': UN ('L :: [k] -> LIST k) (List p % 'L as))
type (List p :: LIST k -> LIST j -> Type) % ('L ('[] :: [j]) :: LIST j) Source Github # 
Instance details

Defined in Proarrow.Profunctor.List

type (List p :: LIST k -> LIST j -> Type) % ('L ('[] :: [j]) :: LIST j) = 'L ('[] :: [k])

data List (p :: j +-> k) (as :: LIST k) (bs :: LIST j) where Source Github #

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

Instances details
Profunctor p => MonoidalProfunctor (List p :: LIST k -> LIST j -> Type) Source Github #

The free monoidal profunctor on a profunctor.

Instance details

Defined in Proarrow.Profunctor.List

Methods

par0 :: List p (Unit :: LIST k) (Unit :: LIST j) Source Github #

par :: forall (x1 :: LIST k) (x2 :: LIST j) (y1 :: LIST k) (y2 :: LIST j). List p x1 x2 -> List p y1 y2 -> List p (x1 ** y1) (x2 ** y2) Source Github #

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

Defined in Proarrow.Profunctor.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 #

(\\) :: 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 # 
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 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 #

DaggerProfunctor p => DaggerProfunctor (List p :: LIST j -> LIST j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.List

Methods

dagger :: forall (a :: LIST j) (b :: LIST j). List p a b -> List p b a Source Github #

Promonad p => Promonad (List p :: LIST j -> LIST j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.List

Methods

id :: forall (a :: LIST j). Ob a => List p a a Source Github #

(.) :: forall (b :: LIST j) (c :: LIST j) (a :: LIST j). List p b c -> List p a b -> List p a c Source Github #

Functor (List :: (j +-> k) -> LIST k -> LIST j -> Type) Source Github # 
Instance details

Defined in Proarrow.Profunctor.List

Methods

map :: forall (a :: j +-> k) (b :: j +-> k). (a ~> b) -> List a ~> List b Source Github #

type (List p :: LIST k -> LIST j -> Type) % ('L (a ': as) :: LIST j) Source Github # 
Instance details

Defined in Proarrow.Profunctor.List

type (List p :: LIST k -> LIST j -> Type) % ('L (a ': as) :: LIST j) = 'L ((p % a) ': UN ('L :: [k] -> LIST k) (List p % 'L as))
type (List p :: LIST k -> LIST j -> Type) % ('L ('[] :: [j]) :: LIST j) Source Github # 
Instance details

Defined in Proarrow.Profunctor.List

type (List p :: LIST k -> LIST j -> Type) % ('L ('[] :: [j]) :: LIST j) = 'L ('[] :: [k])

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)) Source Github #

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)) Source Github #