aboutsummaryrefslogtreecommitdiff
path: root/src/types.lisp
diff options
context:
space:
mode:
authorThomas Albers Raviola <thomas@thomaslabs.org>2024-05-15 16:21:29 +0200
committerThomas Albers Raviola <thomas@thomaslabs.org>2025-01-05 17:11:20 +0100
commitce529296fb83b21950c15eab60b23074ccc79c2e (patch)
tree7dca0da8e57841f2f8efa31783196888511002cd /src/types.lisp
parentb8d1c62d87e418fb6a7b0ca6c5891b9b7c1ecf0c (diff)
Add syntax form for writing macros
Diffstat (limited to 'src/types.lisp')
-rw-r--r--src/types.lisp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/types.lisp b/src/types.lisp
index 09ede2b..06183b1 100644
--- a/src/types.lisp
+++ b/src/types.lisp
@@ -36,15 +36,20 @@
:initarg :specialp
:type boolean
:documentation "")
+ (type :reader closure-type
+ :initarg :type
+ :type keyword
+ :documentation "")
(groupp :reader closure-group-p
:initarg :groupp
:type function
:documentation "")))
-(defun make-closure (function arg-list specialp groupp &optional environment)
+(defun make-closure (function arg-list specialp groupp &optional environment type)
(make-instance 'closure :function function :arg-list arg-list
:specialp specialp :groupp groupp
- :environment environment))
+ :environment environment
+ :type type))
(defun closurep (object)
(typep object 'closure))