úÎDBL!      !An infinite sequence. The  <:> % operator is an infix version of the   constructor. +Extract the first element of the sequence. 7Extract the sequence following the head of the stream.  y xs" creates an alternating stream of  elements from xs and y. <Apply a function uniformly over all elements of a sequence. =The unfold function is similar to the unfold for lists. Note 6 there is no base case: all streams must be infinite.  f x) function produces the infinite sequence  of repeated applications of f to x. % iterate f x = [x, f x, f (f x), ..]   n xs returns the first n elements of xs. Beware8: passing a negative integer as the first argument will  cause an error.   n xs drops the first n elements off the front of  the sequence xs. Beware8: passing a negative integer as the first argument will  cause an error.   p xs* returns the longest prefix of the stream  xs for which the predicate p holds.   p xs$ returns the suffix remaining after    p xs. Beware0: this function may diverge if every element of xs  satisfies p, e.g. dropWhile even (repeat 0) will loop.   x3 returns a constant stream, where all elements are  equal to x.  xs$ returns the infinite repetition of xs: < cycle [1,2,3] = Cons 1 (Cons 2 (Cons 3 (Cons 1 (Cons 2 ...  p xs, removes any elements from xs that do not satisfy p. Beware6: this function may diverge if there is no element of  xs that satisfies p, e.g. filter odd (repeat 0) will loop. xs !! n# returns the element of the stream xs at index  n0. Note that the head of the stream has index 0. Beware>: passing a negative integer as the first argument will cause  an error. The 2 function takes two streams and returns a list of  corresponding pairs. The  function is the inverse of the  function. The  function generalizes . Rather than tupling = the functions, the elements are combined using the function ! passed as the first argument to .  p xs returns the longest prefix of xs that satisfies  p., together with the remainder of the stream. The  p function is equivalent to  not . p. The / function breaks a stream of characters into a 7 stream of words, which were delimited by white space. Beware: if the stream of characters xs does not contain white  space, accessing the tail of words xs will loop. The % function is an inverse operation to . It % joins words with separating spaces. The 4 function breaks a stream of characters into a list @ of strings at newline characters. The resulting strings do not  contain newlines. Beware: if the stream of characters xs does not contain + newline characters, accessing the tail of lines xs will loop. The % function is an inverse operation to . It = joins lines, after appending a terminating newline to each. The isPrefix function returns True if the first argument is  a prefix of the second. The  function takes a predicate p and a stream  xs>, and returns a pair of streams. The first stream corresponds  to the elements of xs for which p holds; the second stream  corresponds to the elements of xs for which p does not hold. Beware9: One of the elements of the tuple may be undefined. For  example, +fst (partition even (repeat 0)) == repeat 0 ; on the  other hand snd (partition even (repeat 0)) is undefined. The  function takes a stream xs and returns all the  finite prefixes of xs. The  function takes a stream xs and returns all the  suffixes of xs. The  function takes an integer n and a stream xs 0 and returns a pair consisting of the prefix of xs of length  n= and the remaining stream immediately following this prefix. Beware8: passing a negative integer as the first argument will  cause an error. The * converts a stream into an infinite list. The   converts an infinite list to a  stream. Beware.: Passing a finite list, will cause an error. !  !    !  !      !"# Stream-0.2 Data.StreamStreamCons<:>headtail interspersemapunfolditeratetakedrop takeWhile dropWhilerepeatcyclefilter!!zipunzipzipWithspanbreakwordsunwordslinesunlines isPrefixOf partitioninitstailssplitAt streamToList listToStream