Messing about with data schemas in Clojure