JS multimethods - Clojure inspired arbitrary dispatch