From 9cd4be5d9381678d010a5f01978abe953cf4543a Mon Sep 17 00:00:00 2001
From: ram <ram>
Date: Sat, 12 May 1990 21:12:58 +0000
Subject: [PATCH] Changed DEFTYPE to expand into %DEFTYPE, and made %DEFTYPE
 call %NOTE-TYPE-DEFINED.

---
 code/macros.lisp | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

diff --git a/code/macros.lisp b/code/macros.lisp
index 6ef414da8..cf0714527 100644
--- a/code/macros.lisp
+++ b/code/macros.lisp
@@ -189,12 +189,18 @@
 					 :error-string 'deftype-error-string
 					 )
       `(eval-when (compile load eval)
-	 (setf (info type kind ',name) :defined)
-	 (setf (info type expander ',name)
-	       #'(lambda (,whole) ,@local-decs (block ,name ,body)))
-	 ,@(when doc
-	     `((setf (documentation ',name 'type) ,doc)))
-	 ',name))))
+	 (%deftype ',name
+		   #'(lambda (,whole) ,@local-decs (block ,name ,body))
+		   ,@(when doc `(,doc)))))))
+;;;
+(defun %deftype (name expander &optional doc)
+  (setf (info type kind name) :defined)
+  (setf (info type expander name) expander)
+  (when doc
+    (setf (documentation name 'type) doc))
+  (c::%note-type-defined name)
+  name)
+
 
 ;;; And so is DEFINE-SETF-METHOD.
 
-- 
GitLab