concrete-abstraction-clojure