[plt-scheme] except-out in provide

From: Stevie Strickland (sstrickl at ccs.neu.edu)
Date: Fri Feb 19 16:27:43 EST 2010

I believe you have indeed found a bug, and I also believe that this is directly related to bug 10561.  My guess is that both involve the fact that the static struct info generated for the contracted struct is wrong.  I'll forward your email into the audit trail for that bug, and I'll do my best to get around to this soon.


On Feb 19, 2010, at 4:17 PM, Eric Dobson 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.