[plt-scheme] except-out in provide

From: Eric Dobson (endobson at cs.brown.edu)
Date: Fri Feb 19 16:17:42 EST 2010

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.


Posted on the users mailing list.