anchor.diff:  
   ;; @\section{Exapansions}
   
  +;; @
  +
   ;; <<>>=
   (defvar *modf-expansions*
  -  (make-hash-table) )
  +  (make-hash-table)
  +  "Holds expansion functions" )
   
   ;; <<>>=
  -(defvar *modf-nth-arg* (make-hash-table))
  +(defvar *modf-nth-arg* (make-hash-table)
  +  "Holds what argument to try to invert next." )
   
   ;; <<>>=
   (defmacro define-modf-expander (name nth-arg
                                   (expr val new-val)
                                   &body body )
  +  "Define a new expander which inverts forms starting with NAME.  Your function
  +should return an expansion from EXPR to a form that will build a new object that
  +has NEW-VAL in the place specified by expr.  NTH-ARG marks which argument is
  +considered the actual data which will be inverted next."
     `(setf
       (gethash ',name *modf-expansions*)
       (lambda (,expr ,val ,new-val)
  
positive.code: 
  ;; <<>>=
  (defmacro define-modf-method (name nth-arg (new-val &rest args) &body body)
    `(progn
       (defmethod ,(intern (modf-name name) :modf) (,new-val ,@args)
         ,@body )
       (setf (gethash ',name *modf-nth-arg*)
             ,nth-arg )))
  
  ;; <<>>=
  (defmacro modf-eval (&rest args)
    `(progn ,@args) )
  
  ;; @\section{The {\em modf} macro}
  
  ;; @The <<modf>> macro is the main entry point to the library.
  
  ;; The basic syntax of the <<modf>> macro is as follows
  
  ;; <<>>=
  (defun modf-expand (new-val expr)
  
negative.code:            (modf ,next-place ,next-value ,@next-args) ))
        (modf-expand value place) ))
  
  ;; <<>>=
  (defmacro modf-eval (&rest args)
    `(progn ,@args) )
  
  