anchor.diff:  
   grammar Clojure;
   
  -file: form* #ftest;
  +file: list*;
   
  -form: kw
  -    | literal
  -    | let_form
  +form: literal
       | list
       | vector
       | map
  
positive.code:     | '#\'' SYMBOL // TJP added (get Var object instead of the value of a symbol)
      ;
  
  let_form: '(' let binding body ')';
  
  let: 'let' ;
  
  binding: '[' form* ']' ;
  
  body: form*;
  
  /* list: '(' form* ')' ; */
  list: '(' form* ')' ;
  
  kw: 'defn' | 'def' | 'do' ; // etc.
  
  vector: '[' form* ']' ;
  
  
negative.code:     ;
  
  literal
      : STRING
      | NUMBER
      | CHARACTER
      | NIL
      | BOOLEAN
      | KEYWORD
      | SYMBOL
      | PARAM_NAME
      ;
  
  STRING : '"' ( ~'"' | '\\' '"' )* '"' ;
  