Parser combinators, for Swift