Useful and internal functions for manipulating streams.
@type item() :: any()
@type reason() :: any()