Stream — potentially infinite analog of a list, in type theory and functional programming