Common Lisp CLOS オブジェクトをハッシュテーブルのキーとして使用したいと考えています。私はそれが次のように簡単だと思った:
(defclass my-class () ((a :accessor a :initarg a)))
(defun my-class= (my-instance-1 my-instance-2)
(equal (a my-instance-1) (a my-instance-2)))
(defparameter my-hash-table (make-hash-table :test #'my-class=))
Common Lisp Hyperspec を調べてみると、等価性をテストするために eq、eql、equal、または equalp しか使用できないようです。
これを行う方法はありますか?それとも、これは本当にばかげたことであり、それが標準で許可されていない理由ですか?