caterwaul
let kCat = ../Category/Cat/semigroupallet vObject = Typein λ(object : Kind) → λ(cat : ../Category/Semigroupal/Kind kCat vObject object) → λ(m : object) → λ(semigroup : ./Type object cat m) → semigroup.{ product }