/caterwaul/Tuple/comonad
Copy path to clipboardSource
let cat = ../Category/Cat/semigroupal
let Set = ../Category/Set/monoidal/cartesian
let vObject = Type
let base = ../Category/Monoidal/Cartesian/extractCategory cat vObject Type Set
in λ(a : Type) →
{ unit = λ(b : Type) → λ(tup : Set.product { _1 = a, _2 = b }) → tup._2
, product =
λ(b : Type) →
λ(tup : Set.product { _1 = a, _2 = b }) →
{ _1 = tup._1, _2 = tup }
}
: ../Comonad/Type Type base (λ(b : Type) → Set.product { _1 = a, _2 = b })