anchor.diff:  ;;; Lists
   ;;;**********************************************************************NLC14DEC90
   ;;; The Old, Boring, Common-Lisp compatible Way.
  -#-lispm
   (defmethod copy-self ((ORIGINAL-LIST list))
     (and ORIGINAL-LIST (cons nil nil)))
   
  
positive.code: (defmacro WITH-STACK-LIST-COPY ((variable list) &body body)
    "Like `((let ((,variable (copy-list ,list))) ,@body) 
     except that the copy is consed on the stack."
    #+Genera
    `(let ((.n. (length ,list))
  	 (.l. ,list))
       (flet ((.body. (&rest ,variable)
  	      ,@body))
         (sys:%start-function-call #'.body. return .n. nil)
         (do () ((null .l.)) (sys:%push (pop .l.)))
         (sys:%finish-function-call #'.body. return .n. nil)))
    #-Genera
    `(let ((,variable (copy-list ,list))) ,@body))
  
negative.code:   (unless (null ORIGINAL-LIST)
      (setf (car COPY-LIST) (copy (car ORIGINAL-LIST) COPY-HTABLE))
      (setf (cdr COPY-LIST) (copy (cdr ORIGINAL-LIST) COPY-HTABLE))))
  
  ;;;********************************************************************************
  ;;; Copy-able Class objects.
  