(defn cat
"A transducer which concatenates the contents of each input, which must be a
collection, into the reduction."
{:added "1.7"}
[rf]
(let [rrf (preserving-reduced rf)]
(fn
([] (rf))
([result] (rf result))
([result input]
(reduce rrf result input)))))