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

Reply via email to