<div dir="ltr">Thank you for the speedy fix, and thank goodness I'm not just crazy</div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Oct 20, 2014 at 2:45 PM, Vincent St-Amour <span dir="ltr"><<a href="mailto:stamourv@ccs.neu.edu" target="_blank">stamourv@ccs.neu.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thanks for the report!<br>
<br>
I pushed a fix earlier today.<br>
<br>
Vincent<br>
<br>
<br>
<br>
At Sun, 19 Oct 2014 23:16:11 -0700,<br>
<div><div class="h5">Jack Firth wrote:<br>
><br>
> I think there may be a mistake in the type definition of foldl for the case<br>
> that accepts an initial value and three lists and a function of four values<br>
> to fold them over. The following untyped code runs correctly:<br>
><br>
> #lang racket<br>
> (define (f a b c d) d)<br>
> (define ns '(0 1 2))<br>
> (define vs '(a 2 "b"))<br>
> (foldl f 'ok ns ns vs)<br>
><br>
> However, the typed form of this code gives a type error:<br>
><br>
> #lang typed/racket<br>
> (define: (f [a : Natural] [b : Natural] [c : Any] [d : Symbol]) : Symbol d)<br>
> (: ns (Listof Natural))<br>
> (define ns '(0 1 2))<br>
> (: vs (Listof Any))<br>
> (define vs '(a 2 "b"))<br>
> (foldl f 'ok ns ns vs)<br>
><br>
> Specifically, the type checker outputs:<br>
><br>
> Type Checker: Polymorphic function `foldl' could not be applied to arguments:<br>
> Types: (-> a b c d d) d (Listof a) (Listof b) (Listof d) -> d<br>
>        (-> a b c c) c (Listof a) (Listof b) -> c<br>
>        (-> a b b) b (Listof a) -> b<br>
> Arguments: (-> Nonnegative-Integer Nonnegative-Integer Any Symbol<br>
> Symbol) 'ok (Listof Nonnegative-Integer) (Listof Nonnegative-Integer)<br>
> (Listof Any)<br>
> Expected result: AnyValues<br>
>  in: (foldl f (quote ok) ns ns vs)<br>
><br>
> I think the issue may be in that first line of the type definition, (-> a b<br>
> c d d) d (Listof a) (Listof b) (Listof d) -> d. Shouldn’t that last<br>
> argument type be (Listof c) instead of (Listof d)?<br>
> ​<br>
</div></div>> [1.2  <text/html; UTF-8 (quoted-printable)>]<br>
><br>
> [2  <text/plain; us-ascii (7bit)>]<br>
> ____________________<br>
>   Racket Users list:<br>
>   <a href="http://lists.racket-lang.org/users" target="_blank">http://lists.racket-lang.org/users</a><br>
</blockquote></div><br></div>