Generalize over any Stream