                (vector? seq-exprs) "a vector for its binding"
                (even? (count seq-exprs)) "an even number of forms in binding vector")
   (let [to-groups (fn [seq-exprs]
-                    (reduce1 (fn [groups [k v]]
+                    (reduce (fn [groups [k v]]
                                (if (keyword? k)
                                  (conj (pop groups) (conj (peek groups) [k v]))
                                  (conj groups [k v])))

  ([x] (cast Number x))
  ([x y] (add'* x y))
  ([x y & more]
   (reduce1 +' (+' x y) more)))

(defn +
  "Returns the sum of nums. (+) returns 0. Does not auto-promote

  ([x] x)
  ([x y] (max* x y))
  ([x y & more]
   (reduce max (max x y) more)))

(defn min
  "Returns the least of the nums."
