imported unification from Clojure