<p><br>
On Jun 23, 2011 6:17 PM, &quot;Robby Findler&quot; &lt;<a href="mailto:robby@eecs.northwestern.edu">robby@eecs.northwestern.edu</a>&gt; wrote:<br>
&gt;<br>
&gt; Is the with-handlers that typed/racket exports the same identifier as<br>
&gt; the one exported by racket, or is it a different binding?</p>
<p>&#39;with-handlers&#39; in &#39;typed/racket&#39; is a different binding.  Basically, it just adds some annotations to help the type checker.</p>
<p>&gt;<br>
&gt; Robby<br>
&gt;<br>
&gt; On Fri, Jun 24, 2011 at 2:46 AM, Sam Tobin-Hochstadt &lt;<a href="mailto:samth@ccs.neu.edu">samth@ccs.neu.edu</a>&gt; wrote:<br>
&gt; &gt; On Wed, Jun 22, 2011 at 6:53 PM, Robby Findler<br>
&gt; &gt; &lt;<a href="mailto:robby@eecs.northwestern.edu">robby@eecs.northwestern.edu</a>&gt; wrote:<br>
&gt; &gt;&gt; To really know what is going on, one has to trace thru the re-provides<br>
&gt; &gt;&gt; for each of these identifiers and match them up to the<br>
&gt; &gt;&gt; declare-exporting declarations.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; In the declaration below, you&#39;re essentially saying &quot;any identifiers<br>
&gt; &gt;&gt; documented in this module should appear to come from the<br>
&gt; &gt;&gt; typed/scheme/base, typed/scheme, and typed-scheme modules, but they<br>
&gt; &gt;&gt; are really actually exported from one of the modules listed in the<br>
&gt; &gt;&gt; #:use-sources keyword&quot; which means, to the documentation system that<br>
&gt; &gt;&gt; any module that re-exports an identifier from, say,<br>
&gt; &gt;&gt; typed-scheme/base-env/base-types-extra, will have its documentation<br>
&gt; &gt;&gt; attached to the docs in the file with the declare-exporting below and<br>
&gt; &gt;&gt; the docs system will then point userse to typed/scheme/base.<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; I don&#39;t think that this is what you want, since you probably want to<br>
&gt; &gt;&gt; to point people to typed/racket.<br>
&gt; &gt;<br>
&gt; &gt; That&#39;s not what&#39;s going on here, although you couldn&#39;t tell that from<br>
&gt; &gt; my email.  That `declare-exporting&#39; is in a subsection which only<br>
&gt; &gt; documents `typed/scheme&#39; etc, and not any of the actual forms in Typed<br>
&gt; &gt; Racket.<br>
&gt; &gt;<br>
&gt; &gt;&gt; To know what the right answer is for the declare-exporting below, I&#39;d<br>
&gt; &gt;&gt; have to know how typed/racket fits into the picture. In particular, is<br>
&gt; &gt;&gt; it re-exporting things from typed/scheme? Or from those helper modules<br>
&gt; &gt;&gt; you have listed? Or from some other place?<br>
&gt; &gt;<br>
&gt; &gt; It&#39;s probably easier to just consider `typed/racket/base&#39; and<br>
&gt; &gt; `typed/scheme/base&#39; here.  Both of them export identifiers from the<br>
&gt; &gt; modules listed in the `declare-exporting&#39; declaration. For example,<br>
&gt; &gt; `with-handlers&#39; is defined in `typed-scheme/base-env/prims&#39;.<br>
&gt; &gt;<br>
&gt; &gt; Here&#39;s what the documentation for `typed/racket/base&#39; looks like:<br>
&gt; &gt;<br>
&gt; &gt; @(defmodulelang* (typed/racket/base typed/racket)<br>
&gt; &gt;                 #:use-sources<br>
&gt; &gt;                    (typed-scheme/typed-scheme<br>
&gt; &gt;                     typed-scheme/base-env/prims<br>
&gt; &gt;                     typed-scheme/base-env/extra-procs<br>
&gt; &gt;                     typed-scheme/base-env/base-types<br>
&gt; &gt;                     typed-scheme/base-env/base-types-extra))<br>
&gt; &gt;<br>
&gt; &gt; Also, I don&#39;t think this is a problem with the general setup of<br>
&gt; &gt; documentation for Typed Racket.  In particular, the identifier<br>
&gt; &gt; `define-type&#39; is defined in the same module as `with-handlers&#39;, and it<br>
&gt; &gt; gets handled properly by Scribble, by DrRacket, and by `check-docs&#39;.<br>
&gt; &gt; You can see this by searching for `define-type&#39; in the documentation,<br>
&gt; &gt; or for `U&#39;, which is defined in the same module as `-&gt;&#39;.<br>
&gt; &gt;<br>
&gt; &gt; Instead, I think the problem is that `with-handlers&#39; and `-&gt;&#39; are both<br>
&gt; &gt; identifiers exported from `racket&#39;, and this is causing some sort of<br>
&gt; &gt; confusion in the Scribble doc system, but I don&#39;t know exactly what,<br>
&gt; &gt; and I&#39;m therefore confused about how to try to fix it.  Of course, it<br>
&gt; &gt; might be something totally different, also -- the vagaries of Scribble<br>
&gt; &gt; linking are still opaque to me.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; Robby<br>
&gt; &gt;&gt;<br>
&gt; &gt;&gt; On Thu, Jun 23, 2011 at 3:16 AM, Sam Tobin-Hochstadt &lt;<a href="mailto:samth@ccs.neu.edu">samth@ccs.neu.edu</a>&gt; wrote:<br>
&gt; &gt;&gt;&gt; Currently, the documentation completeness checker (a wonderful tool;<br>
&gt; &gt;&gt;&gt; thanks, Robby!) for Typed Racket complains that `-&gt;&#39; and<br>
&gt; &gt;&gt;&gt; `with-handlers&#39; are not documented when provided from `typed/scheme&#39;,<br>
&gt; &gt;&gt;&gt; `typed/scheme/base&#39;, and `typed-scheme&#39;.  However, these identifiers<br>
&gt; &gt;&gt;&gt; are fine when provided from `typed/racket&#39;, and are both defined in<br>
&gt; &gt;&gt;&gt; modules where `check-docs&#39; finds the documentation for other things<br>
&gt; &gt;&gt;&gt; just fine, such as `define:&#39; and `All&#39;.  The documentation looks like<br>
&gt; &gt;&gt;&gt; this:<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; (declare-exporting typed/scheme/base typed/scheme typed-scheme<br>
&gt; &gt;&gt;&gt;                    #:use-sources<br>
&gt; &gt;&gt;&gt;                    (typed-scheme/typed-scheme<br>
&gt; &gt;&gt;&gt;                     typed-scheme/base-env/prims<br>
&gt; &gt;&gt;&gt;                     typed-scheme/base-env/extra-procs<br>
&gt; &gt;&gt;&gt;                     typed-scheme/base-env/base-types<br>
&gt; &gt;&gt;&gt;                     typed-scheme/base-env/base-types-extra))<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; where `-&gt;&#39; is defined in `typed-scheme/base-env/base-types-extra&#39; and<br>
&gt; &gt;&gt;&gt; `with-handlers&#39; is defined in `typed-scheme/base-env/prims&#39;.<br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;&gt; Is there something else I should be doing here?  Is there a bug in<br>
&gt; &gt;&gt;&gt; `check-docs&#39;?<br>
&gt; &gt;&gt;&gt; --<br>
&gt; &gt;&gt;&gt; sam th<br>
&gt; &gt;&gt;&gt; <a href="mailto:samth@ccs.neu.edu">samth@ccs.neu.edu</a><br>
&gt; &gt;&gt;&gt; _________________________________________________<br>
&gt; &gt;&gt;&gt;  For list-related administrative tasks:<br>
&gt; &gt;&gt;&gt;  <a href="http://lists.racket-lang.org/listinfo/dev">http://lists.racket-lang.org/listinfo/dev</a><br>
&gt; &gt;&gt;&gt;<br>
&gt; &gt;&gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; --<br>
&gt; &gt; sam th<br>
&gt; &gt; <a href="mailto:samth@ccs.neu.edu">samth@ccs.neu.edu</a><br>
&gt; &gt;<br>
</p>