Active patterns makes parsing succinct and readable IMO