anchor.diff:      ;
     
   predicate_props returns [JSONObject json]
  -    :   WITH^ prop_list[true]
  +    :   WITH^ prop_list[KeyType.STRING_LITERAL]
           {
               $json = $prop_list.json;
           }
       ;
   
  -prop_list[boolean needKeyInString] returns [JSONObject json]
  +prop_list[KeyType keyType] returns [JSONObject json]
   @init {
       $json = new JSONObject();
   }
  -    :   LPAR p=key_value_pair[needKeyInString]
  +    :   LPAR p=key_value_pair[keyType]
           {
               try {
                   $json.put($p.key, $p.val);
  
positive.code: @init {
      $json = new JSONObject();
  }
      :   USING RELEVANCE MODEL IDENT prop_list[false] model=relevance_model?
          {
              try {
                  if (model == null) {
  
negative.code: @init {
      $json = new JSONObject();
  }
      :   '{' p=key_value_pair[KeyType.STRING_LITERAL]
          {
              try {
                  $json.put($p.key, $p.val);
  