Create a submit function that looks for cards with a special marker type for Java classes as well.
(defn visualize-dispatch [foo]
(if (map? foo)
(:type foo)
(class foo)))
(defmulti visualize visualize-dispatch)
(defmethod visualize String [s]
(println "Got a string" s))
(defmethod visualize :banana [b]
(println "Got a banana that is" (:val b)))
Java {: type: banana: val "something" }.
user> (visualize "bikini")
Got a string bikini
user> (visualize {:type :banana :val "speckled"})
Got a banana that is speckled