I tried this: #lang typed/racket/base
(: my-hash (HashTable Nonnegative-Integer (Listof String))) (define my-hash (make-hash)) (: my-hash-add (-> Nonnegative-Integer String Void)) (define (my-hash-add size s) (let* ([val (hash-ref! my-hash size #f)]) (if val (hash-set! my-hash size (cons s val)) (hash-set! my-hash size (list s))))) and got: test.rkt:10:14: Type Checker: Polymorphic function `hash-ref!' could not be applied to arguments: Argument 1: Expected: (HashTable a b) Given: (HashTable Nonnegative-Integer (Listof String)) Argument 2: Expected: a Given: Nonnegative-Integer Argument 3: Expected: (-> b) Given: False in: (hash-ref! my-hash size #f) context...: /home/manfred/racket/share/pkgs/typed-racket-lib/typed-racket/typecheck/tc-toplevel.rkt:249:0: type-check /home/manfred/racket/share/pkgs/typed-racket-lib/typed-racket/tc-setup.rkt:40:0: tc-setup /home/manfred/racket/share/pkgs/typed-racket-lib/typed-racket/typed-racket.rkt:25:4 standard-module-name-resolver What can I do to make this work? -- Manfred ____________________ Racket Users list: http://lists.racket-lang.org/users