[plt-scheme] srfi/1 messes typed-scheme

From: David Van Horn (dvanhorn at ccs.neu.edu)
Date: Thu Apr 2 21:15:58 EDT 2009

Paulo J. Matos wrote:
> On Fri, Apr 3, 2009 at 12:59 AM, Paulo J. Matos <pocmatos at gmail.com> wrote:
>> So the reason why this fails:
>> (require/typed srfi/1
>>               (every (All (a) (((a * -> Boolean) (Listof a) * -> Boolean)))))
>>
>>  with
>> typecheck: not a valid type: (((a * -> Boolean) (Listof a) * ->
>> Boolean)) in: (((a * -> Boolean) (Listof a) * -> Boolean))
>>
>> or a problem with unsupported polymorphic types in require/typed?
>>
> 
> It seems that my type was wrong but typed-scheme still returns the
> same with the following type which seems to match the function
> definition:
> (require/typed srfi/1
>                (every (All (a) (((a * -> Boolean) (Listof a) (Listof
> a) * -> Boolean)))))

In both cases, you have a syntax error.  There is an extra set of 
parentheses around the type under (All (a) ...).

After fixing that problem, it still may not be possible to convert such 
a type to a contract, however.

David


Posted on the users mailing list.