git.fiddlerwoaroof.com
Raw Blame History
(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))))