/caterwaul/Category/Set/curry
Copy path to clipboardSource
let cat = ../Cat/semigroupal
let Set = ./monoidal/cartesian
in ( λ(a : Type) →
λ(b : Type) →
λ(c : Type) →
{ to =
λ(f : Set.arrow { _1 = Set.product { _1 = a, _2 = b }, _2 = c }) →
λ(x : a) →
λ(y : b) →
f { _1 = x, _2 = y }
, from =
λ(f : Set.arrow { _1 = a, _2 = Set.arrow { _1 = b, _2 = c } }) →
λ(p : Set.product { _1 = a, _2 = b }) →
f p._1 p._2
}
)
: ../Monoidal/Closed/curry
(../Monoidal/Cartesian/extractMonoidal cat Type Type Set)