anchor.diff:    Parser binaryMessage() => ref(binaryToken).seq(ref(unaryExpression));
     Parser binaryMethod() => ref(binaryToken).seq(ref(variable));
     Parser binaryPragma() => ref(binaryToken).seq(ref(arrayItem));
  -  Parser binaryToken() => ref(token, ref(binary));
  +  Parser binaryToken() => ref(token, ref(binary), 'binary selector');
     Parser block() => ref(token, '[').seq(ref(blockBody)).seq(ref(token, ']'));
     Parser blockArgument() => ref(token, ':').seq(ref(variable));
     Parser blockArguments() =>
  
positive.code:   Parser cascadeMessage() => ref(token, ';').seq(ref(message));
    Parser character() => char('\$').seq(any());
    Parser characterLiteral() => ref(characterToken);
    Parser characterToken() => ref(token, ref(character));
    Parser expression() => ref(assignment).star().seq(ref(cascadeExpression));
    Parser falseLiteral() => ref(falseToken);
    Parser falseToken() => ref(token, 'false').seq(word().not());
    Parser identifier() => pattern('a-zA-Z_').seq(word().star());
    Parser identifierToken() => ref(token, ref(identifier));
    Parser keyword() => ref(identifier).seq(char(':'));
    Parser keywordExpression() =>
        ref(binaryExpression).seq(ref(keywordMessage).optional());
  
negative.code:       ref(keywordToken).seq(ref(binaryExpression)).plus();
    Parser keywordMethod() => ref(keywordToken).seq(ref(variable)).plus();
    Parser keywordPragma() => ref(keywordToken).seq(ref(arrayItem)).plus();
    Parser keywordToken() => ref(token, ref(keyword), 'keyword selector');
    Parser literal() => ref(numberLiteral)
        .or(ref(stringLiteral))
        .or(ref(characterLiteral))
  