/caterwaul/Semigroupoid/Type
Copy path to clipboardFIXME: The hom
profunctor should be implementable generically, however I
can‘t currently get it to compile with Dhall, so it’s a member here, and every
implementation is basically a copy/paste of compose (compose f g) h
. Embedding
the definition here also basically forces every category to be enriched over
𝐒𝐞𝐭.
Source
{-|
**FIXME**: The `hom` profunctor should be implementable generically, however I
can‘t currently get it to compile with Dhall, so it’s a member here, and every
implementation is basically a copy/paste of `compose (compose f g) h`. Embedding
the definition here also basically forces every category to be enriched over
𝐒𝐞𝐭.
-}
let kCat = ../Category/Cat/semigroupal
let vObject = Type
in λ(object : Kind) →
λ(v : ../Category/Monoidal/Kind kCat Type vObject) →
λ(cat : ../Category/Kind kCat vObject object) →
λ(m : kCat.arrow (kCat.product object object) vObject) →
let profunctor = kCat.arrow (kCat.product object object) vObject
in { hom : ../Functor/Profunctor/Type object object v cat cat m }
⩓ ../Semigroup/Type
profunctor
(../Category/Profunctor/semigroupal object v cat)
m