diff --git a/checking.lisp b/checking.lisp index f71ba2b..97c0aae 100644 --- a/checking.lisp +++ b/checking.lisp @@ -1,6 +1,6 @@ (in-package #:definitions-systems) -(defclass defsys:check-definition-mixin () ()) +(defclass defsys:check-definition-mixin (defsys:system) ()) (defgeneric defsys:base-definition-class (system)) diff --git a/definitions.lisp b/definitions.lisp index 32a9660..8df4f7d 100644 --- a/definitions.lisp +++ b/definitions.lisp @@ -31,7 +31,7 @@ (error "Don't know how to ~S for definition ~S because it has no owner." 'make-load-form definition)))) -(defclass defsys:primary-binding-mixin (defsys:owner-mixin defsys:name-mixin) +(defclass defsys:primary-binding-mixin (defsys:owner-mixin defsys:name-mixin defsys:definition) ()) (defmethod shared-initialize :after ((definition defsys:primary-binding-mixin) slot-names @@ -52,7 +52,7 @@ (defmethod (setf defsys:name) (new-name (definition defsys:primary-binding-mixin)) (reinitialize-instance definition :name new-name)) -(defclass defsys:alias-bindings-mixin () +(defclass defsys:alias-bindings-mixin (defsys:definition) ((%aliasing-systems :reader %aliasing-systems :type hash-table :initform (make-hash-table :test 'eq)))) diff --git a/expansion.lisp b/expansion.lisp index 77d0032..4169df1 100644 --- a/expansion.lisp +++ b/expansion.lisp @@ -1,6 +1,6 @@ (in-package #:definitions-systems) -(defclass defsys:default-definition-class-mixin () +(defclass defsys:default-definition-class-mixin (defsys:system) ((%default-definition-class :initarg :default-definition-class :type (or null class) :initform nil))) diff --git a/systems.lisp b/systems.lisp index cd1527a..de2c31e 100644 --- a/systems.lisp +++ b/systems.lisp @@ -2,13 +2,13 @@ (defclass defsys:system () ()) -(defclass defsys:hash-table-mixin () +(defclass defsys:hash-table-mixin (defsys:system) ((%hash :reader %hash :type hash-table :initform (make-hash-table :test 'eq)))) -(defclass defsys:standard-system (defsys:system - defsys:base-definition-class-mixin +(defclass defsys:standard-system (defsys:base-definition-class-mixin defsys:standard-definition - defsys:hash-table-mixin) + defsys:hash-table-mixin + defsys:system) ())