<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Feb 7, 2015, at 7:35 AM, Sam Tobin-Hochstadt <<a href="mailto:samth@cs.indiana.edu">samth@cs.indiana.edu</a>> wrote:</div><blockquote type="cite">Can you say more about what the best workflow for you would be here?<br>Should this information appear in the blue boxes that DrRacket shows,<br>or in a tooltip, or somewhere else? Or do you want to have it listed<br>in a separate document that you read in the browser? Or something else<br>entirely?<br></blockquote><div><br></div><div>My one-person focus group would create entries for each `(inst proc ...)` in the HTML documentation that might look something like this:</div><div><br></div><div><img apple-inline="yes" id="63BFB07D-7A1B-4254-8010-9766A6BDF117" height="223" width="737" apple-width="yes" apple-height="yes" src="cid:BD1C55EC-3E5B-45B3-A1BC-152905B28640"></div><div><br></div><div>Then I would hook these entries into DrRacket so they appear in the upper-right blue box when I hover over `inst` (in lieu of the default '(inst e t ...) (inst e t ... t ooo bound)')</div><div><br></div><div><br></div><br><blockquote type="cite"><blockquote type="cite"><br></blockquote>I'm not sure what you're imagining the "instantiation-arg-spec" would<br>look like. If we add documentation with the types of standard library<br>functions, then I think the most useful thing to present is the actual<br>type (or perhaps a simplified version in some cases where the type is<br>very large). In particular, I don't think that we could describe how<br>to instantiate polymorphic types better than by giving the type.</blockquote><br></div><div>As someone learning TR, I find that the types as printed in the REPL sometimes reveal implementation details that conceal a simpler underlying logic. Take `map`:</div><div><br></div><div><div>- : (All (c a b ...)</div><div>      (case-></div><div>       (-> (-> a c) (Pairof a (Listof a)) (Pairof c (Listof c)))</div><div>       (-> (-> a b ... b c) (Listof a) (Listof b) ... b (Listof c))))</div></div><br><div>After a little fiddling one discovers that "oh, it's just (inst map output-type input-type ...)". So this is where a documentation entry could add value, because it can explain this underlying logic.</div></body></html>