In this way, two pieces of information are preserved:
1) what needs to be appended to the current input if a completion is selected
2) the full token being completed, which is useful for presenting a user with choices to select

These sources of examples are used in parsers for user input completion.

These sources of examples are used in parsers for user input completion. An example of such a source is the
sbt.complete.FileExamples class, which provides a list of suggested files to the user as they press the
TAB key in the console.

A String parser that provides semi-automatic tab completion.
A successful parse results in a value of type T.
The methods in this trait are what must be implemented to define a new Parser implementation, but are not typically useful for common usage.
Instead, most useful methods for combining smaller parsers into larger parsers are implicitly added by the RichParser type.