anchor.diff:  	 ,@(loop for slot in slots
   	      for initarg in initargs
   	      collect initarg
  -	      collect `(- (slot-value a ',slot)))))
  +	      collect `(- (slot-value a ',slot)))
  +	 ,@(loop for oslot in oslots
  +	      for oinitarg in oinitargs
  +	      collect oinitarg
  +	      collect `(slot-value a ',oslot))))
          ((make-instance
   	 ',class
   	 ,@(loop for slot in slots
   	      for initarg in initargs
   	      collect initarg
  -	      collect `(- (slot-value a ',slot) (slot-value b ',slot))))))
  +	      collect `(- (slot-value a ',slot) (slot-value b ',slot)))
  +	 ,@(loop for oslot in oslots
  +	      for oinitarg in oinitargs
  +	      collect oinitarg
  +	      collect `(slot-value a ',oslot)))))
        ;; Scalar multiplication
        (defmeth2 * ((x ,class) (s number))
          (make-instance 
  
positive.code:   (format stream ">"))
  
  ;;; Macro to define state arithmethic on a custom class
  (defmacro defstatearithmetic (class slots &key (initargs (mapcar #'make-keyword slots)))
    "Defines state arithmetic for specified class and slots.
  Assumes state arithmetic already defined for slot types, including NORMINFX.
  By default, assumes INITARGS of the same name as slots already defined."
    `(progn
       ;; Inifinity norm
       (defmethod norminfx ((x ,class))
  
negative.code: 	,@(loop for slot in slots
  	     for initarg in initargs
  	     collect initarg
  	     collect `(* (slot-value x ',slot) s))
  	,@(loop for oslot in oslots
  	     for oinitarg in oinitargs
  	     collect oinitarg
  	     collect `(slot-value x ',oslot))))
       (defmeth2 * ((s number) (x ,class))
         (* x s))))
  
  