In ClojureScript one can provide default protocol implementations as follows:
AProtocol (f  ...))
This is nicely documented in ClojureScript's
- default, meaning the definitions will apply for any value,
unless an extend-type exists for one of the more specific
- nil, meaning the definitions will apply for the nil value.
It may worthwhile to document how one can provide default implementations for protocols in clojure as well, by using
extend-type clj docstring. On the website is documented already.