Clojure - Multimethods and Hierarchies