clojure abstractions adequately cover object comparison so new abstraction is not necessary