<div dir="ltr">Hi all,<div><br></div><div>As part of familiarizing myself with Typed Racket I thought I'd port one or two of the untyped Racket libraries to TR. This raised a few questions:</div><div><br></div><div>1) Looking at the TR docs and GitHub repo, AFAICT new library ports go in pkgs/typed-racket-pkgs/typed-racket-more/typed -- is that right?</div>
<div><br></div><div>2) I don't see documentation or tests for other ported libraries in general, presumably because they're just wrappers; so, does it suffice to submit only one file -- the library itself -- or are there more files I'm not noticing, that go with each library? (Seems I should be documenting the types I define, but I don't see where those docs would go.)</div>
<div><br></div><div>3) One of the libs I looked at porting, openssl, raised a question about subtyping: SSL ports. It appears to me that internally these are standard Racket input/output ports tagged as special by the openssl library. It seems straightforward enough to create an opaque type like</div>
<blockquote style="margin:0 0 0 40px;border:none;padding:0px"><div>(require/opaque-type SSL-Port ssl-port? openssl)</div></blockquote><div>but that doesn't capture the idea that every ssl-port should also be of type Input-Port or Output-Port (as defined in TR already). First, is that idea correct? And if so, what piece am I missing, to make that happen?</div>
<div><br></div><div>Best,</div><div>jmj</div></div>