我希望能够将定义的类型用作defmethod
. 动机是在后期更改的可读性和灵活性。像这样的东西:
(deftype foo () 'fixnum)
(defmethod bar ((x foo)) ...)
(defmethod baz ((x foo)) ...)
但是,这不起作用。CLtL2 说“表单 deftype 不创建任何类”。
所以我必须写:
(defmethod bar ((x fixnum)) ...)
(defmethod baz ((x fixnum)) ...)
另一种方法是定义一个名为的类foo
,它只不过是一个包装器,fixnum
但对于像fixnum
?
有没有更好的办法?