cljs.spec.alpha/tuple

macropreviously cljs.spec/tupleEdit
(tuple & preds)

Source docstring:
takes one or more preds and returns a spec for a tuple, a vector
where each element conforms to the corresponding pred. Each element
will be referred to in paths using its ordinal.
Source code @ clojurescript:src/main/cljs/cljs/spec/alpha.cljc
(defmacro tuple
  [& preds]
  (clojure.core/assert (not (empty? preds)))
  `(tuple-impl '~(mapv #(res &env %) preds) ~(vec preds)))