<div dir="ltr">Indeed, this was a bug introduced by the levels of indirection I added to put contracts into submodules. I'll push a fix when the tests finish.<div><br></div><div>Thanks for finding this.</div><div><br></div><div>Sam<br><br><div class="gmail_quote">On Sun, Feb 22, 2015 at 3:12 PM Sam Tobin-Hochstadt <<a href="mailto:samth@cs.indiana.edu">samth@cs.indiana.edu</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><p dir="ltr">This looks like a bug to me.</p>
<p dir="ltr">Sam<br>
</p>
<br><div class="gmail_quote">On Sun, Feb 22, 2015, 2:49 PM Alexander D. Knauth <<a href="mailto:alexander@knauth.org" target="_blank">alexander@knauth.org</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Using #:omit-define-syntaxes doesn’t work because then when other modules import it it forgets about the type:<br>
<br>
def.rkt:<br>
#lang typed/racket<br>
(provide x)<br>
(define-type x 'x #:omit-define-syntaxes)<br>
(define x : x 'x)<br>
<br>
ref.rkt:<br>
#lang typed/racket<br>
(require "def.rkt")<br>
x ; works fine, outputs 'x<br>
(define y : x x) ; Type Checker: parse error in type; type name `x' is unbound in: x<br>
<br>
Why doesn’t this work, and is there another way to do this?<br>
<br>
<br>
<br>
____________________<br>
Racket Users list:<br>
<a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/<u></u>u<u></u>sers</a><br>
</blockquote></div></blockquote></div></div></div>