[plt-scheme] except-out in provide

From: Robby Findler (robby at eecs.northwestern.edu)
Date: Fri Feb 19 16:21:10 EST 2010

Looks like a bug to me. You should be able to work around it by not
using struct-out, but instead providing all of the pieces as
identifiers.

Robby

On Fri, Feb 19, 2010 at 3:17 PM, Eric Dobson <endobson at cs.brown.edu> wrote:
> I'm trying to remove an export in a struct-out provide spec and it
> works fine for structures defined using define-struct but not with
> structures defined using define-struct/contract. If I remove the
> except-out, the binding is exported but except-out will complain that
> it does not exist.
>
> #lang scheme
>
> (define-struct posn (x y))
> (define-struct/contract posn2 ((x number?) (y number?)))
>
> (provide (except-out (struct-out posn) make-posn)
>         (except-out (struct-out posn2) make-posn2))
>
> The error is:
> except-out: identifier to remove `make-posn2' not included in nested
> provide spec in: (struct-out posn2)
>
> Am I misunderstanding how struct-out works or is this a bug?
>
> This happens in version 4.2.4.
>
> -Eric
> _________________________________________________
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>


Posted on the users mailing list.