user=> (source clojure.core.protocols/coll-reduce) 没有找到源
但由于协议函数的var的元数据指向协议var,而协议var知道定义它的文件和行号,改进'source'以查找如下应该很简单
user=> (source clojure.core.protocols/coll-reduce) (defprotocol CollReduce "支持更快于first/next递归实现的集合类型协议。由clojure.core/reduce调用。基线实现以Iterable为术语定义。" (coll-reduce [coll f] [coll f val]))