(methods multifn)
Given a multimethod, returns a map of dispatch values -> dispatch fns
user=> (use 'clojure.pprint)
user=> (pprint (methods print-dup))
{nil #<core$fn__5424 clojure.core$fn__5424@b08549>,
java.lang.String #<core$fn__5475 clojure.core$fn__5475@1bddeea>,
java.lang.Boolean #<core$fn__5446 clojure.core$fn__5446@1b40b96>,
clojure.lang.IPersistentList
#<core$fn__5461 clojure.core$fn__5461@d5b26d>,
java.sql.Timestamp
#<instant$fn__6277 clojure.instant$fn__6277@ce52d1>,
java.util.UUID #<uuid$fn__6290 clojure.uuid$fn__6290@17e7fa1>,
clojure.lang.Var #<core$fn__5455 clojure.core$fn__5455@78be86>,
clojure.lang.PersistentVector
#<core$fn__5525 clojure.core$fn__5525@15fc948>,
java.util.Calendar
#<instant$fn__6266 clojure.instant$fn__6266@1733349>,
java.util.Map #<core$fn__5486 clojure.core$fn__5486@806f9b>,
java.lang.Class #<core$fn__5531 clojure.core$fn__5531@1daa05b>,
java.util.regex.Pattern #<core$fn__5544 clojure.core$fn__5544@10dfca>,
java.lang.Number #<core$fn__5436 clojure.core$fn__5436@27edc3>,
java.lang.Long #<core$fn__5511 clojure.core$fn__5511@1edea9d>,
clojure.lang.Namespace #<core$fn__5546 clojure.core$fn__5546@f1a434>,
java.math.BigDecimal #<core$fn__5517 clojure.core$fn__5517@1a5a160>,
clojure.lang.Symbol #<core$fn__5451 clojure.core$fn__5451@17d2095>,
clojure.lang.Keyword #<core$fn__5432 clojure.core$fn__5432@ea3d50>,
clojure.lang.LazilyPersistentVector
#<core$fn__5527 clojure.core$fn__5527@1b77718>,
java.util.Collection #<core$fn__5465 clojure.core$fn__5465@1f784a4>,
java.lang.Double #<core$fn__5513 clojure.core$fn__5513@5e0db2>,
clojure.lang.Fn #<core$fn__5440 clojure.core$fn__5440@ce073>,
clojure.lang.IRecord #<core$fn__5502 clojure.core$fn__5502@19b43b4>,
clojure.lang.PersistentHashSet
#<core$fn__5523 clojure.core$fn__5523@1b93220>,
clojure.lang.IPersistentCollection
#<core$fn__5469 clojure.core$fn__5469@1fb7c3>,
clojure.lang.BigInt #<core$fn__5519 clojure.core$fn__5519@1f5d7d>,
clojure.lang.ISeq #<core$fn__5459 clojure.core$fn__5459@412c94>,
java.util.Date #<instant$fn__6261 clojure.instant$fn__6261@d7bf11>,
clojure.lang.PersistentHashMap
#<core$fn__5521 clojure.core$fn__5521@14a5481>,
clojure.lang.IPersistentMap
#<core$fn__5490 clojure.core$fn__5490@1a4f2db>,
clojure.lang.Ratio #<core$fn__5515 clojure.core$fn__5515@146f3dc>,
java.lang.Character #<core$fn__5509 clojure.core$fn__5509@f09e3f>}
user=> (defmulti do-math (fn [operation x y] operation))
#'user/do-math
user=> (defmethod do-math :add [_ x y] (+ x y))
... (defmethod do-math :subtract [_ x y] (- x y))
... (defmethod do-math :hypotenuse [_ x y] (Math/sqrt (+ (* x x) (* y y))))
#multifn[do-math 0x3a1c348]
user=> (methods do-math)
{:hypotenuse #function[user/eval42540$fn--42541],
:add #function[user/eval42521$fn--42522],
:subtract #function[user/eval42525$fn--42526]}