This works: ;; --------------------------------------------------------- #lang racket/signature ;; b-sig.rkt
(struct spelling-word (word sentence word-number lesson word-list)) b-value ;; --------------------------------------------------------- #lang racket/unit ;; b-unit.rkt (require "b-sig.rkt") (import) (export b^) (define-struct spelling-word (word sentence word-number lesson word-list)) (define b-value 3) ;; --------------------------------------------------------- The signature of a component (unit) describes the names of the exports (or imports). So when you write (struct my-struct (a b c)) in a signature, your exporting unit must define something like (define-struct my-struct (a b c)) [You can also use the struct syntax but you then need to define the alternative constructor.] ;; --------------------------------------------------------- I recommend developing small units in one DrRacket buffer. It's the easiest way to get used to their syntax. -- Matthias On Feb 4, 2015, at 9:14 PM, Justin Zamora wrote: > There seems to be a problem exporting struct constructors when using #lang > racket/signature. This works: > > ----- b-sig.rkt----- > #lang racket > > (define-signature b^ > ((struct my-struct (a b c)) > b-value)) > > (provide b^) > > ----- b-unit.rkt ----- > #lang racket/unit > > (require "b-sig.rkt") > > (import) > (export b^) > > (struct spelling-word > (word sentence word-number lesson word-list)) > > (define b-value 3) > > But if you change b-sig to use #lang racket/signature: > #lang racket/signature > > (struct my-struct (a b c)) > b-value > > then running b-unit produces the error: > > Welcome to DrRacket, version 6.1 [3m]. > Language: racket/unit; memory limit: 512 MB. > define-unit: undefined export make-my-struct in: (define-unit b@ (import) > (export b^) (struct my-struct (a b c)) (define b-value 3)) > > Is this a just a bug or am I missing something? > > ____________________ > Racket Users list: > http://lists.racket-lang.org/users ____________________ Racket Users list: http://lists.racket-lang.org/users