<div>While the exact typing isn&#39;t quite right yet, the following added to the end of /collects/typed-racket/base-env/base-special-env.rkt is now giving normal TR type check (domain mismatch) errors.  So I assume I just need to get the signatures right.  This will put me past the show stopper problem of the quote-module-path closing over a protected procedure.</div>
<div><br></div><div><div>  [(make-template-identifier &#39;module-path-fixup &#39;syntax/location)</div><div>   (-&gt;opt [(Un -Symbol -String)] (Un -Path -Symbol (-lst (Un -Symbol -String))))]</div><div><br></div><div>  [(make-template-identifier &#39;variable-reference-&gt;module-source/submod &#39;syntax/location)</div>
<div>                             (-&gt; -Variable-Reference</div><div>                                 (Un (-pair (Un -Symbol (-val #f) -Path)</div><div>                                            -Resolved-Module-Path)</div>
<div>                                     -Symbol (-val #f) -Path))]</div><div><div><br></div><div>But ...</div><div>While module-path-fixup is an internal method, variable-reference-&gt;module-source/submod appears to be something that should be publicly exposed into the base environment given the treatement of its sibling methods.</div>
<div><a href="http://docs.racket-lang.org/reference/Namespaces.html?q=variable-reference#(def._((quote._~23~25kernel)._variable-reference-~3eempty-namespace))">http://docs.racket-lang.org/reference/Namespaces.html?q=variable-reference#(def._((quote._~23~25kernel)._variable-reference-~3eempty-namespace))</a></div>
<div><br></div><div>While the siblings seem to be runtime defined internal to Racket itself, variable-reference.../submod is defined as a regular Racket reference in syntax/location.  I tried exporting it and then injecting it into typed-racket/base-env/base-env.rkt through a number of tricks and treats - no go, its always an undefined identifier.  So I punted, and ended up just treating it strictly as a template identifier.  The above does solve my immediate issues of making progress on TRing Places.</div>
<div><br></div><div>Once I get the signature types right I&#39;ll submit a patch.</div><div><br></div></div></div><div>Ray</div><div><br></div>