anchor.diff:  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   
   
  -(defmethod closer-mop:validate-superclass :before ((c class) (s class))
  -  (call-next-method))
  -    
  -(defmethod closer-mop:validate-superclass :before
  -    ((class class) (superclass class))
  -  (or (and (eql (find-class 'user-sequence)) (eql #.(find-class 'sequence)))
  -      (call-next-method)))
  -
  -
   ;;;---------------------------------------------------------------------
   ;;; So now, we can define our own subclasses of sequences.
   ;;;---------------------------------------------------------------------
   
  -(defclass user-sequence (sequence)
  +
  +;; (define-method closer-mop:validate-superclass :before ((c class) (s class))
  +;;   (call-next-method))
  +
  +
  +;; (remove-method (function closer-mop:validate-superclass)
  +;;                (find-method (function closer-mop:validate-superclass)
  +;;                             ':before
  +;;                             '(class  class)))
  +
  +;;; this doesn't work on ccl for built-in-class vs stanard-class
  +;;; and not on clisp for find-class can't find the class pased in arguments.
  +;; (define-method closer-mop:validate-superclass :before
  +;;     ((class class) (superclass class))
  +;;   (warn "~S check again this implementation!"'(closer-mop:validate-superclass :before
  +;;                                                ((class class) (superclass class))))
  +;;   (print class)
  +;;   (print (list class  (eql class       (find-class 'user-sequence))
  +;;                superclass (eql superclass  (load-time-value (find-class 'sequence)))))
  +;;   (print (or (and #-clisp (eql class       (find-class 'user-sequence))
  +;;                   #+clisp (eq 'user-sequence (class-name class))
  +;;                   (eql superclass  (load-time-value (find-class 'sequence))))
  +;;              (call-next-method))))
  +
  +(warn "TODO: implement user-sequence as subclass of sequence")
  +(defclass user-sequence (#+not-yet sequence)
     ()
     (:documentation "Our own abstract sequence class."))
   
   
  +
  +
   ;;;---------------------------------------------------------------------
   ;;; Abstract direct access sequence
   ;;;---------------------------------------------------------------------
   
   
   (defclass direct-access-sequence (user-sequence)
  -  ((length :reader length))
  +  ((length #+not-yet :reader #+not-yet length))
     (:documentation "A class of vector-like sequences with direct access."))
   
  -(defmethod copy-seq ((self direct-access-sequence))
  +(define-method copy-seq ((self direct-access-sequence))
     (let ((copy (make-instance (class-of self) :size (length self))))
       (loop
          :for i :from 0 :below (length self)
  
positive.code: 
  
  ;; We must pass the symbol in a list to export CL:NIL.
  (export (mapcar (lambda (name) (intern name "IBCL"))
                  (let ((symbols '()))
                    (do-external-symbols (sym "COMMON-LISP")
                      (push (string sym) symbols))
  
negative.code: 
  
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;; THE END ;;;;
  