Parser combinators: refactored.