Что не так со следующим протоколом Clojure?

В Clojure 1.2:

(defprotocol PP 
  (foo [bar]) 
  (foo [bar baz]))
=> PP

(extend-protocol PP 
  Object 
    (foo [bar] 1) 
    (foo [bar baz] 2))
=> nil

(foo "hello!")
=> #<CompilerException java.lang.IllegalArgumentException: No single method: foo of interface: PP found for function: foo of protocol: PP

Где я ошибаюсь? Я ожидал увидеть 1 как результат версии функции foo с одним аргументом, поскольку "hello!" явно является экземпляром java.lang.Object.

20
задан mikera 3 February 2011 в 22:53
поделиться