anchor.diff:    CLAW directive[$l]
   ;
   
  -
  -ids_list[List<String> ids]
  -  :
  -    i=IDENTIFIER { $ids.add($i.text); }
  -  | i=IDENTIFIER { $ids.add($i.text); } ',' ids_list[$ids]
  -;
  -
  -ids_or_colon_list[List<String> ids]
  -  :
  -    i=IDENTIFIER { $ids.add($i.text); }
  -  | ':' { $ids.add(":"); }
  -  | i=IDENTIFIER { $ids.add($i.text); } ',' ids_or_colon_list[$ids]
  -  | ':' { $ids.add(":"); } ',' ids_or_colon_list[$ids]
  -;
  -
   directive[ClawLanguage l]
     @init{
       List<ClawMapping> m = new ArrayList<>();
  
positive.code:   | /* empty */
  ;
  
  interchange_optional[ClawLanguage l]:
      INTERCHANGE indexes_option[$l]
      {
  
negative.code:   | /* empty */
  ;
  
  // induction clause
  induction_optional[ClawLanguage l]
    @init{
      List<String> temp = new ArrayList<>();
  