proarrow-0: Category theory with a central role for profunctors
Safe HaskellNone
LanguageHaskell2010

Proarrow.Profunctor.Product

Documentation

data ((p :: PRO j k) :*: (q :: PRO j k)) (a :: j) (b :: k) where Source Comments #

Constructors

(:*:) 

Fields

  • :: forall {j} {k} (p :: PRO j k) (a :: j) (b :: k) (q :: PRO j k). { fstP :: p a b
     
  •    , sndP :: q a b
     
  •    } -> (p :*: q) a b
     

Instances

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

Defined in Proarrow.Profunctor.Product

Methods

lift0 :: (p :*: q) (Unit :: j) (Unit :: k) Source Comments #

lift2 :: forall (x1 :: j) (x2 :: k) (y1 :: j) (y2 :: k). (p :*: q) x1 x2 -> (p :*: q) y1 y2 -> (p :*: q) (x1 ** y1) (x2 ** y2) Source Comments #

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

Defined in Proarrow.Profunctor.Product

Methods

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

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

prod :: forall {j} {k} (r :: j -> k -> Type) (p :: j -> k -> Type) (q :: j -> k -> Type). (r :~> p) -> (r :~> q) -> r :~> (p :*: q) Source Comments #