anchor.diff:  
   (define-parser try (p)
      (let* ((*index* *index*))
  -      (funcall p)))
  +      (run-parser p)))
   
   (define-parser any (p)
  -   (iter (for r = (funcall p))
  +   (iter (for r = (run-parser p))
            (until (error? r))
            (collect r into result)
            (finally (return result))))
   
   (define-parser many (p)
  -   (iter (for r = (funcall p))
  +   (iter (for r = (run-parser p))
            (until (error? r))
            (collect r into result)
            (finally (return (or result (fail 'many))))))
   
   (define-parser choice (&rest parsers)
      (iter (for parser in parsers)
  -         (for parser-result = (funcall parser))
  +         (for parser-result = (run-parser parser))
            (on-success parser-result (leave parser-result))
            (finally (return (fail 'choice)))))
   
   (define-parser seq (&rest parsers)
      (iter (for parser in parsers)
  -         (for parser-result = (funcall parser))
  +         (for parser-result = (run-parser parser))
            (on-failure parser-result (leave parser-result))
   			(collect parser-result)))
   
   (define-parser times (n parser)
      (iter (repeat n)
  -         (for parse-result = (funcall parser))
  +         (for parse-result = (run-parser parser))
            (on-failure parse-result (leave parse-result))
            (collect parse-result into list)
            (finally (return list))))
   
   (define-parser optional (parser)
  -   (if (error? (funcall (try parser)))
  +   (if (error? (run-parser (try parser)))
          nil
  -       (funcall parser)))
  +       (run-parser parser)))
   
   (define-parser range (a b)
   	(if (test-remaining 1)
  
positive.code: 
  (defparameter *parser-list* nil)
  
  (defmacro define-parser (name ll &rest body)
    `(progn (defun ,name ,ll (lambda () ,@body))
  			 (defparameter ,name (function ,name))
  			 (push ',name *parser-list*)))
  
  (defmacro parse (string form)
  
negative.code: ;; (author this-code) => (:name "Dylan Ball" :email "Arathnim@gmail.com")
  
  (declaim (optimize (speed 3) (safety 0) (debug 3) (space 0)))
  
  (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)
  
  ;; data
  