/caterwaul/Identity/bimonad

Copy path to clipboard

Source

let kCat = ../Category/Cat/semigroupal

let vObject = Type

let v =
../Category/Monoidal/Cartesian/extractMonoidal
kCat
Type
vObject
../Category/Set/monoidal/cartesian

in λ(object : Kind) →
λ(cat : ../Category/Kind kCat vObject object) →
λ(category : ../Category/Type object v cat) →
{ monoid = ./monad object cat category
, comonoid =
./monad
object
(../Category/Op/Kind vObject object cat)
(../Category/Op/category object cat category)
}
: ../Bimonad/Type
object
(../Category/Monoidal/extractCategory kCat Type vObject v)
cat
(./Type object)