#lang scheme/base (require "private/unit-syntax.rkt" "private/unit-compiletime.rkt") (provide unit-static-signatures signature-members) (define (unit-static-signatures name err-stx) (parameterize ((error-syntax err-stx)) (let ((ui (lookup-def-unit name))) (values (apply list (unit-info-import-sig-ids ui)) (apply list (unit-info-export-sig-ids ui)))))) (define (signature-members name err-stx) (parameterize ((error-syntax err-stx)) (let ([s (lookup-signature name)]) (values ;; extends: (and (pair? (cdr (siginfo-names (signature-siginfo s)))) (cadr (siginfo-names (signature-siginfo s)))) ;; vars (apply list (signature-vars s)) ;; defined vars (apply list (apply append (map car (signature-val-defs s)))) ;; defined stxs (apply list (apply append (map car (signature-stx-defs s))))))))