From 6e489f8464d2bc60e64a03e3c618e8ebf7561129 Mon Sep 17 00:00:00 2001 From: Sam Tobin-Hochstadt Date: Fri, 13 Aug 2010 10:43:49 -0400 Subject: [PATCH] Fix variance of hash tables and parameters --- collects/typed-scheme/rep/type-rep.rkt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/collects/typed-scheme/rep/type-rep.rkt b/collects/typed-scheme/rep/type-rep.rkt index f942dc8b9a..ade9bffaa5 100644 --- a/collects/typed-scheme/rep/type-rep.rkt +++ b/collects/typed-scheme/rep/type-rep.rkt @@ -330,11 +330,14 @@ ;; in : Type ;; out : Type -(dt Param ([in Type/c] [out Type/c]) [#:key 'parameter]) +(dt Param ([in Type/c] [out Type/c]) + [#:key 'parameter] + [#:frees (λ (f) (combine-frees (list (f out) (flip-variances (f in)))))]) ;; key : Type ;; value : Type -(dt Hashtable ([key Type/c] [value Type/c]) [#:key 'hash]) +(dt Hashtable ([key Type/c] [value Type/c]) [#:key 'hash] + [#:frees (λ (f) (combine-frees (list (make-invariant (f key)) (make-invariant (f value)))))]) ;; parent : Type ;; pred : Identifier