anchor.diff:        { $operator = new SmallerOp($SMALLER_OP); }
       | IN_OP
         { $operator = new InOp($IN_OP); }
  +    ;
  +
  +typeOperator returns [TypeOperatorExpression operator]
  +    : IS_OP
  +      { $operator = new IsOp($IS_OP); }
  +    | EXTENDS
  +      { $operator = new Extends($EXTENDS); }
  +    | SATISFIES
  +      { $operator = new Satisfies($SATISFIES); }
       ;
   
   existenceEmptinessExpression returns [Term term]
  
positive.code:           $term = $comparisonOperator.operator; }
          ee2=existenceEmptinessExpression
          { $comparisonOperator.operator.setRightTerm($ee2.term); }
        //| ('is'|'extends'|'satisfies') type
        )?
      ;
  
  
negative.code:     ;
      
  typeConstraint returns [TypeConstraint typeConstraint]
      : compilerAnnotations
        TYPE_CONSTRAINT
        { $typeConstraint = new TypeConstraint($TYPE_CONSTRAINT); 
          $typeConstraint.getCompilerAnnotations().addAll($compilerAnnotations.annotations); }
        typeName 
        { $typeConstraint.setIdentifier($typeName.identifier); }
        //(typeParameters)?
  