Simple clojure multimethod example
user> (defmulti teller (fn [m] (:tell m))) #'user/teller
user> (defmethod teller :b [m] (:b m)) #
user> (defmethod teller :a [m] (:a m)) #
user> (def m {:tell :a :a 1 :b 2})
#'user/m
user> (teller m) 1
user> (def m {:tell :b :a 1 :b 2})
#'user/m
user> (teller m) 2
