proarrow
Safe HaskellNone
LanguageHaskell2010

Proarrow.Category.Promonoidal

Documentation

class Profunctor p => Protensor (p :: PROTENSOR k) where Source Comments #

Methods

compose :: forall (a :: k) (bss :: LIST (LIST k)). (p :.: List p) a bss -> p a ((Tensor :: LIST k -> LIST (LIST k) -> Type) % bss) Source Comments #

decompose :: forall (bss :: LIST (LIST k)) (a :: k). Ob bss => p a ((Tensor :: LIST k -> LIST (LIST k) -> Type) % bss) -> (p :.: List p) a bss Source Comments #

Instances

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

Defined in Proarrow.Category.Promonoidal

Methods

compose :: forall (a :: k) (bss :: LIST (LIST k)). ((Tensor :: k -> LIST k -> Type) :.: List (Tensor :: k -> LIST k -> Type)) a bss -> Tensor a ((Tensor :: LIST k -> LIST (LIST k) -> Type) % bss) Source Comments #

decompose :: forall (bss :: LIST (LIST k)) (a :: k). Ob bss => Tensor a ((Tensor :: LIST k -> LIST (LIST k) -> Type) % bss) -> ((Tensor :: k -> LIST k -> Type) :.: List (Tensor :: k -> LIST k -> Type)) a bss Source Comments #

class Protensor p => Promonoid (p :: PROTENSOR k) (m :: k) where Source Comments #

Methods

mempty :: p m ('L ('[] :: [k])) Source Comments #

mappend :: p m ('L '[m, m]) Source Comments #

class (Protensor t, Profunctor p) => PromonoidalProfunctor (t :: PROTENSOR j) (p :: j +-> j) where Source Comments #

Methods

parN :: (t :.: List p) :~> (p :.: t) Source Comments #

Instances

Instances details
MonoidalProfunctor p => PromonoidalProfunctor (Tensor :: j -> LIST j -> Type) (p :: j +-> j) Source Comments # 
Instance details

Defined in Proarrow.Category.Promonoidal

Methods

parN :: ((Tensor :: j -> LIST j -> Type) :.: List p) :~> (p :.: (Tensor :: j -> LIST j -> Type)) Source Comments #

data Tensor (a :: k) (bs :: LIST k) where Source Comments #

Constructors

Tensor 

Fields

Instances

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

Defined in Proarrow.Category.Promonoidal

Methods

compose :: forall (a :: k) (bss :: LIST (LIST k)). ((Tensor :: k -> LIST k -> Type) :.: List (Tensor :: k -> LIST k -> Type)) a bss -> Tensor a ((Tensor :: LIST k -> LIST (LIST k) -> Type) % bss) Source Comments #

decompose :: forall (bss :: LIST (LIST k)) (a :: k). Ob bss => Tensor a ((Tensor :: LIST k -> LIST (LIST k) -> Type) % bss) -> ((Tensor :: k -> LIST k -> Type) :.: List (Tensor :: k -> LIST k -> Type)) a bss Source Comments #

MonoidalProfunctor p => PromonoidalProfunctor (Tensor :: j -> LIST j -> Type) (p :: j +-> j) Source Comments # 
Instance details

Defined in Proarrow.Category.Promonoidal

Methods

parN :: ((Tensor :: j -> LIST j -> Type) :.: List p) :~> (p :.: (Tensor :: j -> LIST j -> Type)) Source Comments #

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

Defined in Proarrow.Category.Promonoidal

Methods

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

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

Monoidal k => Profunctor (Tensor :: k -> LIST k -> Type) Source Comments # 
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 Comments #

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

type (Tensor :: k -> LIST k -> Type) % (as :: LIST k) Source Comments # 
Instance details

Defined in Proarrow.Category.Promonoidal

type (Tensor :: k -> LIST k -> Type) % (as :: LIST k) = Fold (UN ('L :: [k] -> LIST k) as)

data PList (ps :: LIST (j +-> k)) (as :: LIST k) (bs :: LIST j) where Source Comments #

Constructors

PNil :: forall {j} {k}. PList ('L ('[] :: [j +-> k])) ('L ('[] :: [k])) ('L ('[] :: [j])) 
PCons :: forall {k} {j} (as1 :: [k]) (bs1 :: [j]) (p :: j +-> k) (ps1 :: [j +-> k]) (a :: k) (b :: j). (Ob as1, Ob bs1, Ob p, Ob ps1) => p a b -> PList ('L ps1) ('L as1) ('L bs1) -> PList ('L (p ': ps1)) ('L (a ': as1)) ('L (b ': bs1)) 

Instances

Instances details
(CategoryOf j, CategoryOf k, Ob ps) => Profunctor (PList ps :: LIST k -> LIST j -> Type) Source Comments # 
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 Comments #

(\\) :: forall (a :: LIST k) (b :: LIST j) r. ((Ob a, Ob b) => r) -> PList ps a b -> r Source Comments #

(CategoryOf j, CategoryOf k) => Functor (PList :: LIST (j +-> k) -> LIST k -> LIST j -> Type) Source Comments # 
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 Comments #

data Day (tk :: PROTENSOR k) (tj :: PROTENSOR j) (ps :: LIST (j +-> k)) (a :: k) (b :: j) where Source Comments #

Constructors

Day :: forall {k} {j} (a :: k) (b :: j) (tj :: PROTENSOR j) (bs :: LIST j) (tk :: PROTENSOR k) (as :: LIST k) (ps :: LIST (j +-> k)). (Ob a, Ob b) => (tj b bs -> (tk a as, PList ps as bs)) -> Day tk tj ps a b 

Instances

Instances details
(Profunctor tk, Profunctor tj) => Profunctor (Day tk tj ps :: k -> j -> Type) Source Comments # 
Instance details

Defined in Proarrow.Category.Promonoidal

Methods

dimap :: forall (c :: k) (a :: k) (b :: j) (d :: j). (c ~> a) -> (b ~> d) -> Day tk tj ps a b -> Day tk tj ps c d Source Comments #

(\\) :: forall (a :: k) (b :: j) r. ((Ob a, Ob b) => r) -> Day tk tj ps a b -> r Source Comments #

(Profunctor tk, Profunctor tj) => Functor (Day tk tj :: LIST (j +-> k) -> k -> j -> Type) Source Comments # 
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 Comments #