git.fiddlerwoaroof.com
generic-equals.lisp
2d700b03
 (in-package #:generic-equals)
 
 (defgeneric == (a b)
   (:method (a b) (eql a b))
   (:method ((a list) (b list))
    (declare (optimize (speed 3) (space 3)))
    (if (or (null a) (null b))
      (and (null a) (null b))
      (and (== (car a) (car b))
           (== (cdr a) (cdr b)))))
   (:method ((a vector) (b vector))
    (declare (optimize (speed 3) (space 3)))
    (every #'identity (map 'vector #'== a b))))