The student languages have a completely separate implementation of define-struct from Racket.
[lang/private/teach.rkt: do-define-struct: line 716 For a reason unknown to me, the struct type descriptor [line 805] returned by make-struct-type does not get defined (although it does check to make sure it could be defined.) [line 931] I'm not entirely sure why this is although I anticipate that is has to do with the fact that such a value has no worth in *SL, because there are no operations on it. Thus it would be very awkward in the docs to say that a thing is defined with define-struct that has no meaning to students. Since struct-out expects this thing to be defined, it errors. It is a bit awkward that the error suggests that it should have been imported, rather than defined in the file. Jay On Sat, Aug 28, 2010 at 1:23 PM, Shriram Krishnamurthi <s...@cs.brown.edu> wrote: > What is the relationship between define-struct and struct in Racket > 5.0.1? By define-struct I mean the construct provided in ASL. In my > custom language I have > > (define-struct tv (tag value)) > (provide (struct-out tv)) > > and I get the error > > struct-out: no import for structure-type identifier in: struct:tv > > Is this because define-struct suppresses the struct:tv "structure-type > information"? (If so, why?) ((And if so, is there a way to make > struct-out work shy of copying the implementation of define-struct and > adding/removing the line that hides this?)) > > Shriram > _________________________________________________ > For list-related administrative tasks: > http://lists.racket-lang.org/listinfo/dev > -- Jay McCarthy <j...@cs.byu.edu> Assistant Professor / Brigham Young University http://teammccarthy.org/jay "The glory of God is Intelligence" - D&C 93 _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev