Drops chunks from an input stream if they fail to match a given filter
predicate. See
filter.
Items pushed back to the returned stream are propagated back upstream.
Example:
ghci> Streams.fromList ["the", "quick", "brown", "fox"] >>=
Streams.filter (/= "brown") >>= Streams.toList
["the","quick","fox"]