Higher-level functions to interact with the elements of a stream. Most of
these are based on list functions.

Note that these functions all deal with individual elements of a stream as a
sort of "black box", where there is no introspection of the contained
elements. Values such as ByteString and Text will likely need to be
treated specially to deal with their contents properly (Word8 and Char,
respectively). See the Data.Conduit.Binary and Data.Conduit.Text
modules.

Ensure that the inner sink consumes no more than the given number of
values. Note this this does not ensure that the sink consumes all of those
values. To get the latter behavior, combine with sinkNull, e.g.: