anchor.diff:  (ql:quickload '(alexandria anaphora iterate destructuring-match provide-toplevel) :silent t)
   
   (defpackage transforms
  -  (:export enable-transforms)
  +  (:nicknames tf)
  +  (:export enable-transforms add-transform walking-hook transform)
     (:use cl iterate anaphora destructuring-match provide-toplevel))
   
   (in-package transforms)
   
   (defparameter *transforms* nil)
  +
  +(defvar *gensym* (make-hash-table :test #'equalp))
  +(defun gen-sym (&optional (prefix "gs"))
  +   (setf (gethash prefix *gensym*) (+ 1 (gethash prefix *gensym* 0)))
  +   (intern (string-upcase (format nil "~a~a" prefix (gethash prefix *gensym*)))))
   
   (defun symbol-eq (x y)
      (and (symbolp x) (symbolp y) (string= (string x) (string y))))
  
positive.code:          (bind :on-failure form 
                 :binding-mode multiple 
                 (lhs '-> rhs) form `(lambda (,@lhs) ,@rhs)))))
  
negative.code:                   (funcall it)
                    (error "unknown transform ~a" form)))))
  
  (defun transform (form)
     (provide-toplevel::apply-hooks form))
  
  (defun walking-hook (lam)
     (lambda ()
        (add-hook (lambda (form)
  