anchor.diff:      $code += ")";
       $code = annotation + $code;
   }
  -    : /*(DEFN ID '(' .* ';') =>*/ DEFN name=ID '(' function_def_params ')' {
  +    : DEFN name=ID '(' function_def_params ')' {
               $code = "(defn " + $name.text;
               $code += " [";
               for(int i=0; i < $function_def_params.code_list.size(); ++i) {
  
positive.code: type_annotation returns [String code]
      : type=ID  {$code=$type.text;}
      | container=ID {$code = "(t/" + $container.text;} '[' (inner=type_annotation {$code += " " + $inner.code;})+ ']' {$code += ")";}
      ;
  
  val_assignment returns [String code]
  
negative.code:     : VAL name=ID
        (COLON type=type_annotation {annotation = "(t/ann " + $name.text + " " + $type.code +  ")\n";})?
        '=' expression { $code = "(def " + $name.text + " " + $expression.code + ")"; }
      ;
  
  function_def_params returns [List<String> code_list]
  