[racket-dev] using 'sort' in typed/racket?

From: Carl Eastlund (cce at ccs.neu.edu)
Date: Sat Aug 20 12:06:12 EDT 2011

Have you tried using "inst" instead of "ann"?  Telling TR what to fill
in for a and b will probably be more helpful to it.

Carl Eastlund

On Sat, Aug 20, 2011 at 11:55 AM, John Clements
<clements at brinckerhoff.org> wrote:
> I can't seem to make typed racket happy about using 'sort':
>
> #lang typed/racket
>
> ((ann sort ((Listof Integer) (Integer Integer -> Boolean) -> (Listof Integer)))
>  '(3 5 4) (ann < (Integer Integer -> Boolean)))
>
> =>
>
> Type Checker: Expected ((Listof Integer) (Integer Integer -> Boolean) -> (Listof Integer)), but got (All (a b) (case-lambda ((Listof a) (a a -> Boolean) [#:cache-keys? Boolean] -> (Listof a))((Listof a) (b b -> Boolean) [#:cache-keys? Boolean] #:key (a -> b) -> (Listof a)))) in: sort
>
> As far as I can tell, the type I specify is an instantiation of the given type for sort; my best guess is that the problem is that the type 'b' doesn't appear unless I use the #:key argument. My attempts to specify a #:key explicitly went even more horribly wrong.
>
> John
>
>
> _________________________________________________
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev
>



Posted on the dev mailing list.