this must be implemented by subclasses
the data to process
ParseResult with (success, result and rest) or (not success and optional error message)
See Implementation
this must be implemented by subclasses