This paper extends for the first time semantic interpretation tools to infinite data in order to ensure Input/Output upper bounds on first order Haskell like programs on streams. By I/O upper bounds, we mean temporal relations between the number of reads performed on the input stream elements and the number of output elements produced. We study several I/O upper bounds properties that are of both theoretical and practical interest in order to avoid memory overflows.