diff --git a/collects/scribblings/reference/define-struct.scrbl b/collects/scribblings/reference/define-struct.scrbl index 546a28580d..92500f6829 100644 --- a/collects/scribblings/reference/define-struct.scrbl +++ b/collects/scribblings/reference/define-struct.scrbl @@ -58,7 +58,12 @@ to @math{4+2n} names: @secref["structinfo"]. The @racket[constructor-id] and @racket[id] can be the same, in - which case @racket[id] performs both roles.} + which case @racket[id] performs both roles. In that case, the + expansion of @racket[id] as an expression produces an otherwise + inaccessible identifier that is bound to the constructor + procedure; the expanded identifier has a + @racket['constructor-for] property whose value is an identifier + that is @racket[free-identifier=?] to @racket[id].} @item{@racket[id]@racketidfont{?}, a @deftech{predicate} procedure that returns @racket[#t] for instances of the @tech{structure diff --git a/collects/scribblings/reference/shared.scrbl b/collects/scribblings/reference/shared.scrbl index fe2c251181..a69e599eb1 100644 --- a/collects/scribblings/reference/shared.scrbl +++ b/collects/scribblings/reference/shared.scrbl @@ -60,11 +60,16 @@ production take precedence over later variants: [plain-expr expr] ] -The @|maker| identifier above references to any binding whose name has -@schemeidfont{make-} in the middle, and where @|typedef| has a -@tech{transformer binding} to structure information with a full set of -mutator bindings; see @secref["structinfo"]. A @scheme[_shell-id] must -be one of the @scheme[id]s bound by the @scheme[shared] form to a +The @|maker| identifier above matches three kinds of references. The +first kind is any binding whose name has @schemeidfont{make-} in the +middle, and where @|typedef| has a @tech{transformer binding} to +structure information with a full set of mutator bindings; see +@secref["structinfo"]. The second kind is an identifier that itself has a +@tech{transformer binding} to structure information. The third kind is an +identifier that has a @racket['constructor-for] @tech{syntax property} +whose value is an identifier with a @tech{transformer binding} to structure +information. A @scheme[_shell-id], meanwhile, must be one of the +@scheme[id]s bound by the @scheme[shared] form to a @scheme[_shell-expr]. When the @scheme[expr]s of the @scheme[shared] form are parsed as