racket/collects/eopl/private/utils.ss
2005-05-27 18:56:37 +00:00

19 lines
510 B
Scheme

(module utils mzscheme
;; Generative structure definitions:
(define-struct dt (pred-stx variants))
(define-struct vt (name-stx predicate-stx accessor-stx field-count))
;; Helper function:
(define (variant-assq name-stx variants)
(let loop ([l variants])
(if (module-identifier=? name-stx
(vt-name-stx (car l)))
(car l)
(loop (cdr l)))))
(provide (struct dt (pred-stx variants))
(struct vt (name-stx predicate-stx accessor-stx field-count))
variant-assq))