<div dir="ltr">If you want the continuation-passing-style version, you'll need to explicitly handle the multiple-ness of multiple values:<div><br></div><div><div>#lang typed/racket</div><div><br></div><div>(: my-force (All (A ...) (-> (-> (Values A ...)) (Values A ...))))</div><div>(define (my-force x) (x))</div><div><br></div><div>(ann (my-force (lambda () (values (void) (void)))) (Values Void Void))</div><div><br></div><div>Sam</div><br><br></div></div><br><div class="gmail_quote">On Wed, Mar 18, 2015 at 5:23 PM Benjamin Greenman <<a href="mailto:blg59@cornell.edu">blg59@cornell.edu</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, Mar 18, 2015 at 5:16 PM, Michael Wilber <span dir="ltr"><<a href="mailto:gcr@sneakygcr.net" target="_blank">gcr@sneakygcr.net</a>></span> wrote:<br></div></div></div><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="overflow:hidden">this doesn't work in vanilla Racket<br></div></blockquote></div></div></div><div dir="ltr"><div class="gmail_extra">Sure, but it works without the let! For context, I ran into this issue adding types to a function originally written in continuation passing style. Switching to cons was an easy fix.<br><br></div></div>
____________________<br>
  Racket Users list:<br>
  <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/<u></u>users</a><br>
</blockquote></div>