       (finally
         (replace-bindings* existing-bindings)))))
 
+(def
+  ^{:doc "The same as with-bindings*"
+    :arglists '([binding-map f & args])
+    :added "1.0"}
+  with-redefs-fn with-bindings*)
+
 (defmacro with-bindings
   "Takes a map of Var/value pairs. Sets the vars to the corresponding values.
   Then executes body. Resets the vars back to the original

       ([x y z & args] (or (spn x y z)
                           (some #(some % args) ps)))))))

(defmacro cond->
  "Takes an expression and a set of test/form pairs. Threads expr (via ->)
  through each form for which the corresponding test

                             (next (next vvs)))
                      (seq ret))))]
    `(with-bindings (hash-map ~@(var-ize bindings)) ~@body)))

(defmacro with-redefs
  "The same as binding"
  {:added "1.0"}
  [bindings & body]
  `(binding ~bindings ~@body))

(defn deref
  "Also reader macro: @var/@atom/@delay. When applied to a var or atom,
