prefer-method

added
1.0

ns
clojure.core

type
function

(prefer-method multifn dispatch-val-x dispatch-val-y)

Causes the multimethod to prefer matches of dispatch-val-x over dispatch-val-y 
when there is a conflict

                (def m {:os ::osx})

(defmulti ex :os)

(defmethod ex ::unix
 [_]
 "unix")

(derive ::osx ::unix)

(ex m)
;;=> "unix"

(defmethod ex ::bsd
  [_]
  "bsd")

(derive ::osx ::bsd)

;; which one to choose ::unix or ::bsd ?? -> Conflict!!!
(ex m)
;;=> IllegalArgumentException Multiple methods in multimethod 'ex' match...

(prefer-method ex ::unix ::bsd)

(ex m)
;;=> "unix"