#lang racket/base
(require racket/contract)
(define-struct module-record (name path impl provides requires permissions unimplemented-primval-references))
(define-struct (js-module-record module-record) ())
(provide/contract
[struct module-record [(name symbol?)
(path path?)
(impl string?)
(provides (listof symbol?))
(requires (listof symbol?))
(permissions (listof string?))
(unimplemented-primval-references (listof symbol?))]]
[struct (js-module-record module-record) [(name symbol?)
(path path?)
(impl string?)
(provides (listof symbol?))
(requires (listof symbol?))
(permissions (listof string?))
(unimplemented-primval-references (listof symbol?))]])