<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Or <font face="Courier" class="">Any</font> for that matter. I know. The fact that it could be literally anything was sort of the point.</div><br class=""><div><blockquote type="cite" class=""><div class="">On Jan 29, 2015, at 19:10, Alexander D. Knauth <<a href="mailto:alexander@knauth.org" class="">alexander@knauth.org</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=windows-1252" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Um, for this:</div><div class=""><table cellspacing="0" cellpadding="0" class="RktBlk" style="margin: 0px; padding: 0px; font-family: 'Source Code Pro', monospace; white-space: pre; font-size: 15px; line-height: 22px; background-color: rgb(255, 255, 255);"><tbody style="margin: 0px; padding: 0px;" class=""><tr style="margin: 0px; padding: 0px; white-space: inherit;" class=""><td style="margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;" class=""><span class="RktPn" style="margin: 0px; padding: 0px; white-space: inherit; color: rgb(132, 60, 36); font-size: 1rem;">(</span><span class="RktSym" style="margin: 0px; padding: 0px; white-space: inherit; color: inherit; font-size: 1rem;"><a href="http://docs.racket-lang.org/reference/module.html#%28form._%28%28quote._~23~25kernel%29._module%29%29" class="RktStxLink" data-pltdoc="x" style="margin: 0px; padding: 0px; text-decoration: none; color: rgb(0, 119, 170); font-size: 1rem;">module</a></span><span class="hspace" style="margin: 0px; padding: 0px; white-space: inherit; font-size: 1rem;"> </span><span class="RktSym" style="margin: 0px; padding: 0px; white-space: inherit; color: inherit; font-size: 1rem;">typed</span><span class="hspace" style="margin: 0px; padding: 0px; white-space: inherit; font-size: 1rem;"> </span><span class="RktSym" style="margin: 0px; padding: 0px; white-space: inherit; color: inherit; font-size: 1rem;">typed/racket/base</span></td></tr><tr style="margin: 0px; padding: 0px; white-space: inherit;" class=""><td style="margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;" class=""><span class="hspace" style="margin: 0px; padding: 0px; white-space: inherit; font-size: 1rem;">  </span><span class="hspace" style="margin: 0px; padding: 0px; white-space: inherit; font-size: 1rem;">  </span><span class="RktPn" style="margin: 0px; padding: 0px; white-space: inherit; color: rgb(132, 60, 36); font-size: 1rem;">(</span><span class="RktSym" style="margin: 0px; padding: 0px; white-space: inherit; color: inherit; font-size: 1rem;"><a href="http://docs.racket-lang.org/reference/require.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._provide%29%29" class="RktStxLink" data-pltdoc="x" style="margin: 0px; padding: 0px; text-decoration: none; color: rgb(0, 119, 170); font-size: 1rem;">provide</a></span><span class="hspace" style="margin: 0px; padding: 0px; white-space: inherit; font-size: 1rem;"> </span><span class="RktPn" style="margin: 0px; padding: 0px; white-space: inherit; color: rgb(132, 60, 36); font-size: 1rem;">(</span><span class="RktSym" style="margin: 0px; padding: 0px; white-space: inherit; color: inherit; font-size: 1rem;"><a href="http://docs.racket-lang.org/reference/require.html#%28form._%28%28lib._racket%2Fprivate%2Fbase..rkt%29._struct-out%29%29" class="RktStxLink" data-pltdoc="x" style="margin: 0px; padding: 0px; text-decoration: none; color: rgb(0, 119, 170); font-size: 1rem;">struct-out</a></span><span class="hspace" style="margin: 0px; padding: 0px; white-space: inherit; font-size: 1rem;"> </span><span class="RktSym" style="margin: 0px; padding: 0px; white-space: inherit; color: inherit; font-size: 1rem;">Foo</span><span class="RktPn" style="margin: 0px; padding: 0px; white-space: inherit; color: rgb(132, 60, 36); font-size: 1rem;">)</span><span class="RktPn" style="margin: 0px; padding: 0px; white-space: inherit; color: rgb(132, 60, 36); font-size: 1rem;">)</span></td></tr><tr style="margin: 0px; padding: 0px; white-space: inherit;" class=""><td style="margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;" class=""><span class="hspace" style="margin: 0px; padding: 0px; white-space: inherit; font-size: 1rem;">  </span><span class="hspace" style="margin: 0px; padding: 0px; white-space: inherit; font-size: 1rem;">  </span><span class="RktPn" style="margin: 0px; padding: 0px; white-space: inherit; color: rgb(132, 60, 36); font-size: 1rem;">(</span><span class="RktSym" style="margin: 0px; padding: 0px; white-space: inherit; color: inherit; font-size: 1rem;"><a href="http://docs.racket-lang.org/ts-reference/special-forms.html#%28form._%28%28lib._typed-racket%2Fbase-env%2Fprims..rkt%29._struct%29%29" class="RktStxLink" data-pltdoc="x" style="margin: 0px; padding: 0px; text-decoration: none; color: rgb(0, 119, 170); font-size: 1rem;">struct</a></span><span class="hspace" style="margin: 0px; padding: 0px; white-space: inherit; font-size: 1rem;"> </span><span class="RktPn" style="margin: 0px; padding: 0px; white-space: inherit; color: rgb(132, 60, 36); font-size: 1rem;">[</span><span class="RktSym" style="margin: 0px; padding: 0px; white-space: inherit; color: inherit; font-size: 1rem;">A</span><span class="RktPn" style="margin: 0px; padding: 0px; white-space: inherit; color: rgb(132, 60, 36); font-size: 1rem;">]</span><span class="hspace" style="margin: 0px; padding: 0px; white-space: inherit; font-size: 1rem;"> </span><span class="RktSym" style="margin: 0px; padding: 0px; white-space: inherit; color: inherit; font-size: 1rem;">Foo</span><span class="hspace" style="margin: 0px; padding: 0px; white-space: inherit; font-size: 1rem;"> </span><span class="RktPn" style="margin: 0px; padding: 0px; white-space: inherit; color: rgb(132, 60, 36); font-size: 1rem;">(</span><span class="RktPn" style="margin: 0px; padding: 0px; white-space: inherit; color: rgb(132, 60, 36); font-size: 1rem;">[</span><span class="RktSym" style="margin: 0px; padding: 0px; white-space: inherit; color: inherit; font-size: 1rem;">x</span><span class="hspace" style="margin: 0px; padding: 0px; white-space: inherit; font-size: 1rem;"> </span><span class="RktSym" style="margin: 0px; padding: 0px; white-space: inherit; color: inherit; font-size: 1rem;"><a href="http://docs.racket-lang.org/ts-reference/special-forms.html#%28form._%28%28lib._typed-racket%2Fbase-env%2Fprims..rkt%29._~3a%29%29" class="RktStxLink" data-pltdoc="x" style="margin: 0px; padding: 0px; text-decoration: none; color: rgb(0, 119, 170); font-size: 1rem;">:</a></span><span class="hspace" style="margin: 0px; padding: 0px; white-space: inherit; font-size: 1rem;"> </span><span class="RktSym" style="margin: 0px; padding: 0px; white-space: inherit; color: inherit; font-size: 1rem;">A</span><span class="RktPn" style="margin: 0px; padding: 0px; white-space: inherit; color: rgb(132, 60, 36); font-size: 1rem;">]</span><span class="hspace" style="margin: 0px; padding: 0px; white-space: inherit; font-size: 1rem;"> </span><span class="RktPn" style="margin: 0px; padding: 0px; white-space: inherit; color: rgb(132, 60, 36); font-size: 1rem;">[</span><span class="RktSym" style="margin: 0px; padding: 0px; white-space: inherit; color: inherit; font-size: 1rem;">y</span><span class="hspace" style="margin: 0px; padding: 0px; white-space: inherit; font-size: 1rem;"> </span><span class="RktSym" style="margin: 0px; padding: 0px; white-space: inherit; color: inherit; font-size: 1rem;"><a href="http://docs.racket-lang.org/ts-reference/special-forms.html#%28form._%28%28lib._typed-racket%2Fbase-env%2Fprims..rkt%29._~3a%29%29" class="RktStxLink" data-pltdoc="x" style="margin: 0px; padding: 0px; text-decoration: none; color: rgb(0, 119, 170); font-size: 1rem;">:</a></span><span class="hspace" style="margin: 0px; padding: 0px; white-space: inherit; font-size: 1rem;"> </span><span class="RktSym" style="margin: 0px; padding: 0px; white-space: inherit; color: inherit; font-size: 1rem;">A</span><span class="RktPn" style="margin: 0px; padding: 0px; white-space: inherit; color: rgb(132, 60, 36); font-size: 1rem;">]</span><span class="RktPn" style="margin: 0px; padding: 0px; white-space: inherit; color: rgb(132, 60, 36); font-size: 1rem;">)</span><span class="hspace" style="margin: 0px; padding: 0px; white-space: inherit; font-size: 1rem;"> </span><span class="RktPn" style="margin: 0px; padding: 0px; white-space: inherit; color: rgb(132, 60, 36); font-size: 1rem;">#:transparent</span><span class="RktPn" style="margin: 0px; padding: 0px; white-space: inherit; color: rgb(132, 60, 36); font-size: 1rem;">)</span><span class="RktPn" style="margin: 0px; padding: 0px; white-space: inherit; color: rgb(132, 60, 36); font-size: 1rem;">)</span></td></tr></tbody></table><div class=""><br class=""></div></div><div class=""><span class="RktPn" style="margin: 0px; padding: 0px; font-family: 'Source Code Pro', monospace; white-space: pre; color: rgb(132, 60, 36); font-size: 15px; line-height: 22px; background-color: rgb(255, 255, 255);">(</span><span class="RktSym" style="margin: 0px; padding: 0px; font-family: 'Source Code Pro', monospace; white-space: pre; font-size: 15px; line-height: 22px; background-color: rgb(255, 255, 255);">Foo</span><span class="hspace" style="margin: 0px; padding: 0px; font-family: 'Source Code Pro', monospace; white-space: pre; font-size: 15px; line-height: 22px; background-color: rgb(255, 255, 255);"> </span><span class="RktVal" style="margin: 0px; padding: 0px; font-family: 'Source Code Pro', monospace; white-space: pre; color: rgb(34, 139, 34); font-size: 15px; line-height: 22px; background-color: rgb(255, 255, 255);">"a"</span><span class="hspace" style="margin: 0px; padding: 0px; font-family: 'Source Code Pro', monospace; white-space: pre; font-size: 15px; line-height: 22px; background-color: rgb(255, 255, 255);"> </span><span class="RktVal" style="margin: 0px; padding: 0px; font-family: 'Source Code Pro', monospace; white-space: pre; color: rgb(34, 139, 34); font-size: 15px; line-height: 22px; background-color: rgb(255, 255, 255);">'</span><span class="RktVal" style="margin: 0px; padding: 0px; font-family: 'Source Code Pro', monospace; white-space: pre; color: rgb(34, 139, 34); font-size: 15px; line-height: 22px; background-color: rgb(255, 255, 255);">b</span><span class="RktPn" style="margin: 0px; padding: 0px; font-family: 'Source Code Pro', monospace; white-space: pre; color: rgb(132, 60, 36); font-size: 15px; line-height: 22px; background-color: rgb(255, 255, 255);">)</span></div><div class="">Should be fine because Foo could be instantiated at the type (U String Symbol).</div><br class=""><div class=""><div class="">On Jan 29, 2015, at 9:25 PM, Alexis King <<a href="mailto:lexi.lambda@gmail.com" class="">lexi.lambda@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite" class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">I recently ran into a problem in which opaque types (types imported from untyped code) cannot by parameterized by Typed Racket. I initially encountered this problem in <a href="https://github.com/lexi-lambda/racket-2htdp-typed/issues/1" class="">my attempt to port 2htdp/image to TR</a>.<div class=""><br class=""></div><div class="">After some further consideration, I’m interested in adding support to make something like this possible, which would certainly have additional benefits beyond this specific use-case. I’ve outlined my proposal here:</div><div class=""><a href="http://lexi-lambda.github.io/racket-parametric-opaque-types/" class="">http://lexi-lambda.github.io/racket-parametric-opaque-types/</a></div><div class=""><br class=""></div><div class="">Any feedback, suggestions, or advice would be appreciated, especially from those who are familiar with Typed Racket’s internals.</div><div class=""><br class=""></div><div class="">Thank you,</div><div class="">Alexis</div></div>_________________________<br class="">  Racket Developers list:<br class="">  <a href="http://lists.racket-lang.org/dev" class="">http://lists.racket-lang.org/dev</a><br class=""></blockquote></div><br class=""></div></div></blockquote></div><br class=""></body></html>