about summary refs log blame commit diff stats
path: root/cutil.lisp
blob: e651b1125850a2df7dedf23a6decdb8d46c86404 (plain) (tree)
1
2
3
4
5
6
7
8
9
                   
                      



                       
                                               
                                                       
                                                                   



                                                           
                                                                   



                                                                          
    

                 
(defpackage #:cutil
  (:use #:common-lisp)
  (:export
   #:<abstract-class>))
(in-package #:cutil)

(defclass <abstract-class> (standard-class) ())
(defmethod make-instance ((self <abstract-class>) &key)
  (error "Cannot instantiate abstract class ~A" (class-name self)))

;;; These are copied from cl-abstract-classes in Quicklisp.
;;; It turns out you do need both.
;;; Maybe someday I'll understand why :-)
(defmethod closer-mop:validate-superclass ((class <abstract-class>)
					   (superclass cl:standard-class))
  t)
(defmethod closer-mop:validate-superclass ((class cl:standard-class)
					   (superclass <abstract-class>))
  t)

(provide "cutil")