Oh, of course. Sorry for the confusion. Robby
On Thu, Nov 29, 2012 at 8:56 PM, Matthew Flatt <mfl...@cs.utah.edu> wrote: > I don't see a bug. > > The body of a `module+' module sees all of the bindings of its > enclosing module, unless those bindings are shadowed. > For example, > > #lang racket > (define x 5) > (module+ main > x) > > would print 5 (even though `x' is not exported), but > > #lang racket > (define x 5) > (module+ main > (require (rename-in racket/base [null x])) > x) > > prints the empty list (since the import shadows the outer `x'), and > > #lang racket > (define x 5) > (define y 6) > (provide (rename-out [y x])) > (module+ main > (require (submod "..")) > x) > > prints 6 (also due to shadowing). > > In the examples below, the first one's submodule gets the enclosing > module's `ident-number' binding. In the second example, the enclosing > `ident-number' is shadowed with the contracted `ident-number' import. > > At Thu, 29 Nov 2012 20:57:25 -0500, Harry Spier wrote: >> Thanks Robby, >> >> Do I need to submit a bug report. >> Harry >> >> On Thu, Nov 29, 2012 at 8:32 PM, Robby Findler >> <ro...@eecs.northwestern.edu> wrote: >> > That looks like a bug to me. >> > >> > Robby >> > >> > On Thu, Nov 29, 2012 at 6:59 PM, Harry Spier <vasishtha.sp...@gmail.com> >> wrote: >> >> Dear list members, >> >> >> >> Case 1 below doesn't give a contract violation but case 2 does. Is >> >> this desired behavour or is it a bug? >> >> >> >> In DrRacket >> >> Case 1 >> >> --------- >> >> #lang racket >> >> (provide (contract-out [ident-number (-> number? number?)])) >> >> (define (ident-number x) x) >> >> (module+ main >> >> (ident-number 'a)) >> >> >> >>> 'a >> >> >> >> >> >> Case 2 >> >> ------------ >> >> #lang racket >> >> (provide (contract-out [ident-number (-> number? number?)])) >> >> (define (ident-number x) x) >> >> (module+ main >> >> (require (submod "..")) >> >> (ident-number 'a)) >> >> >> >>> >> >> ident-number: contract violation >> >> expected: number? >> >> given: 'a >> >> in: the 1st argument of >> >> (-> number? number?) >> >> contract from: >> >> c:\users\harry\ocr_project\test2.rkt >> >> blaming: >> >> (c:\users\harry\ocr_project\test2.rkt main) >> >> at: c:\users\harry\ocr_project\test2.rkt:2.24 >> >> >> >> Thanks, >> >> Harry Spier >> >> ____________________ >> >> Racket Users list: >> >> http://lists.racket-lang.org/users >> ____________________ >> Racket Users list: >> http://lists.racket-lang.org/users > ____________________ > Racket Users list: > http://lists.racket-lang.org/users ____________________ Racket Users list: http://lists.racket-lang.org/users