anchor.diff:  SEMI            : ';';
   COMMA           : ',';  
   DOT             : '.';
  -NOT             : '¬'; 
  +NOT             : '¬';
  +/*
  +%MS: What does the 'ˢ' stand for? Maybe some intuition?
  +*/
   FUNCTIONAL      : 'ˢ';    
   
   // -- Common lexing rules with Crsx.g4.
  
positive.code:     | NUMBER                                             /* Number literal */
      ;
  
  cvariable
      : VARIABLE<symbol> FUNCTIONAL? csortas?              /* Variable occurrence */
      ;
  
  csortas
      : AS csort                                           /* Sort annotation */
      ;
  
  ckv
      : METAVAR                                            /* property reference (match/construct)      */
      | NOT METAVAR                                        /* no property references (match only)       */
  
negative.code: WS               : [ \t\r\n\f]+ -> channel(HIDDEN) ;
  
  BLOCK_COMMENT    : '/*' .*? ('*/' | EOF)    -> channel(HIDDEN);
  LINE_COMMENT     : '//' ~[\r\n]*            -> channel(HIDDEN);
  