summaryrefslogtreecommitdiff
path: root/module/ice-9/boot-9.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/ice-9/boot-9.scm')
-rw-r--r--module/ice-9/boot-9.scm6
1 files changed, 6 insertions, 0 deletions
diff --git a/module/ice-9/boot-9.scm b/module/ice-9/boot-9.scm
index dcff0ed7a..3b98aaf75 100644
--- a/module/ice-9/boot-9.scm
+++ b/module/ice-9/boot-9.scm
@@ -1241,6 +1241,12 @@ VALUE."
(nparents (vector-length parents)))
(and (not (zero? nparents))
(vector-ref parents (1- nparents)))))
+(define (record-type-has-parent? rtd parent)
+ (or (eq? rtd parent)
+ (let ((parents (record-type-parents rtd))
+ (nparents (vector-length (record-type-parents parent))))
+ (and (< nparents (vector-length parents))
+ (eq? (vector-ref parents nparents) parent)))))
(define (record-type-mutable-fields rtd)
(unless (record-type? rtd)