anchor.diff:  
   (defmacro define-parser (name ll &rest body)
     `(progn (defun ,name ,ll (lambda () ,@body))
  -			 (push ',name *parser-list*)))
  +          (push ',name *parser-list*)))
   
   (defmacro parse (string form)
     `(let* ((*source* ,string)
  
positive.code:        (run-parser parser)))
  
  (define-parser range (a b)
  	(if (test-remaining 1)
  		 (iter (for c from (char-code a) to (char-code b))
  				 (with char = (char *source* *index*))
  			    (if (eql char (code-char c)) 
  					  (leave (succeed char 1)))
  				 (finally (return (fail (list a b)))))
  		 (fail (list a b))))
  
negative.code: (ql:quickload '(alexandria iterate anaphora) :silent t)
  
  (defpackage wernicke 
     (:use cl alexandria iterate anaphora)
     (:export "DEFPARSER" "PARSE" "CHR" "STR" "ONE-OF" "NONE-OF" 
        "ANY" "MANY" "SEQ" "CHOICE" "RANGE" "TRY" "OPTIONAL" "TIMES"
        "*RUN-HOOKS*"))
  
  (in-package wernicke)
  
  