/caterwaul/Functor/Profunctor/Type

Copy path to clipboard

A profunctor ๐’ž โ†› ๐’Ÿ is represented as the bifunctor (๐’Ÿ^op, ๐’ž) โ†’ ๐’ฑ. This is much more general than Haskellโ€™s Profunctor. It also requires that ๐’ฑ is closed.

Source

{-|
A profunctor `๐’ž โ†› ๐’Ÿ` is represented as the bifunctor `(๐’Ÿ^op, ๐’ž) โ†’ ๐’ฑ`. This is
much more general than Haskellโ€™s `Profunctor`. It also requires that ๐’ฑ is
closed.
-}
let cat = ../../Category/Cat/semigroupal

let Category = ../../Category/Kind cat

let vObject = Type

in ฮป(cObject : Kind) โ†’
ฮป(dObject : Kind) โ†’
ฮป(v : ../../Category/Monoidal/Closed/Kind cat vObject) โ†’
ฮป(c : Category vObject cObject) โ†’
ฮป(d : Category vObject dObject) โ†’
../Bifunctor/Type
vObject
dObject
cObject
vObject
v
(../../Category/Op/Kind vObject dObject d)
c
(../../Category/Monoidal/extractCategory cat vObject vObject v)