Category Theory in Clojure