This doesn’t happen if I change the language of the submodule to 
typed/racket/base, so I’m guessing this is because require/typed isn’t meant to 
be used in untyped code.  

So should require/typed produce a syntax error when it’s used in untyped code 
like this?

On May 8, 2015, at 5:30 PM, Sam Tobin-Hochstadt <[email protected]> wrote:

> This appears to be a bug -- my guess is that the contract isn't
> actually generated, and thus turns into `#f` -- that's what
> `require/typed` expands to, before TR inserts the real contract.
> 
> Sam
> 
> On Fri, May 8, 2015 at 5:26 PM, Alexander D. Knauth
> <[email protected]> wrote:
>> I have this file:
>> #lang typed/racket
>> (provide x)
>> (define x : Natural 3)
>> (module* main racket/base
>>  (require typed/racket/base)
>>  (require/typed (submod "..")
>>                 [x Natural]))
>> 
>> I get this strange error message:
>> . . ../../../../../Applications/Racket/April-24/Racket 
>> v6.2.0.2/collects/racket/contract/private/blame.rkt:143:0: x: broke its 
>> contract
>>  promised: #f
>>  produced: 3
>>  in: #f
>>  contract from: (interface for x)
>>  blaming: (interface for x)
>>   (assuming the contract is correct)
>>  at: /Users/Alex/Documents/DrRacket/tr-submod-error/lib.rkt:7.18
>> 
>> What?
>> 
>> I just realized I meant to use require/untyped-contract instead of 
>> require/typed, but still, what?
>> 
>> 
>> --
>> You received this message because you are subscribed to the Google Groups 
>> "Racket Users" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected].
>> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to