/**
 * Overlay for pairs.
 */
module collection/tuple/cons
signature
  constructors
    : ()
    : a -> (a)
    : a * b -> (a, b)
    : a * b * c -> (a, b, c)
    : a * b * c * d -> (a, b, c, d)
    : a * b * c * d * e -> (a, b, c, d, e)
    : a * b * c * d * e * f -> (a, b, c, d, e, f)
    : a * b * c * d * e * f * g -> (a, b, c, d, e, f, g)
    : a * b * c * d * e * f * g * h -> (a, b, c, d, e, f, g, h)
    : a * b * c * d * e * f * g * h * i -> (a, b, c, d, e, f, g, h, i)
    : a * b * c * d * e * f * g * h * i * j -> (a, b, c, d, e, f, g, h, i, j)
    : a * b * c * d * e * f * g * h * i * j * k -> (a, b, c, d, e, f, g, h, i, j, k)
    : a * b * c * d * e * f * g * h * i * j * k * l -> (a, b, c, d, e, f, g, h, i, j, k, l)
    : a * b * c * d * e * f * g * h * i * j * k * l * m -> (a, b, c, d, e, f, g, h, i, j, k, l, m)
    : a * b * c * d * e * f * g * h * i * j * k * l * m * n -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n)
    : a * b * c * d * e * f * g * h * i * j * k * l * m * n * o -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
    : a * b * c * d * e * f * g * h * i * j * k * l * m * n * o * p -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p)
    : a * b * c * d * e * f * g * h * i * j * k * l * m * n * o * p * q -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q)
    : a * b * c * d * e * f * g * h * i * j * k * l * m * n * o * p * q * r -> (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r)

overlays
 /**
  * Overlay for a pair, converts two terms to a 2-tuple.
  */
  Pair(x, y) = (x, y)