(error "~S is not a defined type class." name)))
(defun must-supply-this (&rest foo)
+ (/show0 "failing in MUST-SUPPLY-THIS")
(error "missing type method for ~S" foo))
;;; A TYPE-CLASS object represents the "kind" of a type. It mainly contains
) ; EVAL-WHEN
(defmacro !define-type-method ((class method &rest more-methods)
- lambda-list &body body)
- (let ((name (symbolicate CLASS "-" method "-TYPE-METHOD")))
+ lambda-list &body body)
+ (let ((name (symbolicate class "-" method "-TYPE-METHOD")))
`(progn
- (defun ,name ,lambda-list ,@body)
+ (defun ,name ,lambda-list
+ ,@body)
(!cold-init-forms
- ,@(mapcar #'(lambda (method)
- `(setf (,(class-function-slot-or-lose method)
- (type-class-or-lose ',class))
- #',name))
- (cons method more-methods)))
+ ,@(mapcar (lambda (method)
+ `(setf (,(class-function-slot-or-lose method)
+ (type-class-or-lose ',class))
+ #',name))
+ (cons method more-methods)))
',name)))
(defmacro !define-type-class (name &key inherits)