(cat & gens)
Returns a generator of a sequence catenated from results of gens, each of which should generate something sequential.
(defn cat [& gens] (fmap #(apply concat %) (apply tuple gens)))