This module provides an abstraction similar to iterators. Elements are
produced in one direction, while errors bubble backwards until they are
vented. This allows for complex transformation chains such as lexical
analyzers and parsers to be constructed, where errors, warnings, or notices
might be emitted without disturbing the transformation.
A UTF8 parser that keeps track of the index and size of the characters it
emits. This parser does not generate any errors, but rather replaces invalid
encoding in the input with the
U+FFFD REPLACEMENT CHARACTER.