<div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div>I've started porting code to typed/racket.  One module is now typed and used in an untyped module that has not yet been ported.  In the untyped module, I call a function (provided by the typed module) that updates provided variables but the values observed in the untyped module do not reflect the changes.<br><br></div>For example,<br></div>testtyped.rkt:<br></div>#lang typed/racket<br></div>(provide *name* get-name set-name)<br></div>(define: *name" : String "initial")<br></div>(define: (get-name) : String *name*)<br></div>(define: (set-name! [new-name : String]) : Void (set! *name* new-name))<br><br></div>and then in testuntyped.rkt:<br></div>#lang racket<br></div>(require "testtyped.rkt")<br></div>*name*<br></div>(set-name! "new-name")<br></div>*name*<br></div>(get-name)<br><br></div>The result of running testuntyped.rkt is two "initial"s and one "new-name".  If I change the lang of testtyped.rkt to just racket (and remove the type annotations), running testuntyped gives me the expected one "initial" and two "new-name"s.<br><br></div><div>If I change the lang of testuntyped.rkt to typed/racket, it works as I wanted.  But until I can port everything, ... I don't think creating getters for all my variables is an option.  Thanks in advance for any suggestions.  --Wayne<br></div></div>