Copy path to clipboardSource
let cat = ../Category/Cat/semigroupal
let Set = ../Category/Set/monoidal/cartesian
let base = ../Category/Monoidal/Cartesian/extractCategory cat
let vObject = Type
let v = base Type vObject ../Category/Set/monoidal/cartesian
in  λ(s : Type) →
        { unit = λ(a : Type) → λ(x : a) → λ(y : s) → { _1 = y, _2 = x }
        , counit = λ(a : Type) → λ(x : { _1 : s, _2 : s → a }) → x._2 x._1
        , leftAdjunct =
            λ(a : Type) →
            λ(b : Type) →
            λ(f : { _1 : s, _2 : a } → b) →
            λ(x : a) →
            λ(y : s) →
              f { _1 = y, _2 = x }
        , rightAdjunct =
            λ(a : Type) →
            λ(b : Type) →
            λ(f : a → s → b) →
            λ(t : { _1 : s, _2 : a }) →
              f t._2 t._1
        }
      : ../Adjunction/Type
          Type
          Type
          v
          (base vObject Type Set)
          (base vObject Type Set)
          (λ(a : Type) → Set.product { _1 = s, _2 = a })
          (λ(a : Type) → Set.arrow { _1 = s, _2 = a })