what does "reducible" mean? reduce functions - reduce, transduce, reducers how can Clojure libs provide custom reducible collections? CollReduce, IReduceInit, IReduce etc