Jak napisać protokół monoid w Clojure?

Poniższe informacje nie działają z oczywistych powodów.

(defprotocol Monoid
  (mappend [a b])
  (mzero []))

mzero ma zero argumentów, a metody zerowego argumentu nie są dozwolone (lub nie mają sensu) w protokołach. W Haskell lub Scala, gdzie wysyłka jest oparta na typie, a nie na wartości, nie stanowi to problemu.

Jaki byłby właściwy sposób konceptualizacji i pisaniaMonoid protokół w Clojure?

questionAnswers(1)

yourAnswerToTheQuestion