anchor.diff:      ;
   
   constraint
  -    : brackettedExpression | builtInCall | functionCall
  +    : brackettedExpression
  +    | builtInCall
  +    | functionCall
       ;
   
   functionCall
  
positive.code:     | MAX OPEN_BRACE DISTINCT? expression CLOSE_BRACE -> ^(MAX DISTINCT* expression)
      | AVG OPEN_BRACE DISTINCT? expression CLOSE_BRACE -> ^(AVG DISTINCT* expression)
      | SAMPLE OPEN_BRACE DISTINCT? expression CLOSE_BRACE -> ^(SAMPLE DISTINCT? expression)
      | GROUP_CONCAT OPEN_BRACE DISTINCT? expression ( SEMICOLON SEPARATOR '=' string )? CLOSE_BRACE -> ^(GROUP_CONCAT DISTINCT* expression string*)
      ;
      
  iriRefOrFunction
      : iriRef argList? -> ^(FUNCTION iriRef ^(ARG_LIST argList)?)
      ;
  
  rdfLiteral
  
negative.code:     ;
  
  unaryExpression
      : op=NEGATION primaryExpression -> ^(UNARY_NOT[$op] /*NEGATION*/ primaryExpression)
      | op=PLUS primaryExpression -> ^(UNARY_PLUS[$op] /*PLUS*/ primaryExpression)
      | op=MINUS primaryExpression -> ^(UNARY_MINUS[$op] /*MINUS*/ primaryExpression)
      | primaryExpression -> ^(UNARY primaryExpression)
      ;
  
  primaryExpression
  