On Sat, Dec 10, 2011 at 5:54 PM, Jeremiah Willcock <jewil...@osl.iu.edu> wrote: > When I run the following program: > > #lang typed/racket > (struct: A ((f : (HashTable Any Any)))) > (provide (all-defined-out)) > > I get the error message: > > racket-Linux-install/lib/racket/collects/racket/contract/private/hash.rkt:57:0: > hash/c: expected either a flat or chaperone contract for the domain, got Any > > "Check Syntax" does not produce any errors, and highlights the program > correctly. My "About DrRacket..." version string is "Welcome to DrRacket, > version 5.2.0.5--2011-06-21(-/f), english" (from the Git repository as of > Dec. 6, 2011). The "provide" form is necessary for the program to fail. I > would appreciate any help you might be able to give.
The problem is in the `Any' contract. The implementation of `Any' can't be used as the contract for hashtable keys. I'll fix this so that it works for this program, but you won't be able to, in general, define a `HashTable' with key type `Any' in Typed Racket and insert higher-order values as keys. To work around this for the moment, use a more specific contract than `Any' on the keys. -- sam th sa...@ccs.neu.edu _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users