diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/substitute.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/substitute.rkt index 5571d083..5d6f23c4 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/substitute.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/substitute.rkt @@ -39,7 +39,8 @@ ;; substitute-many : Hash[Name,Type] Type -> Type (define/cond-contract (substitute-many subst target #:Un [Un (lambda (args) (apply Un args))]) - ((simple-substitution/c (or/c Values/c arr?)) (#:Un procedure?) . ->* . (or/c Values/c arr?)) + ((simple-substitution/c (or/c SomeValues/c Values/c arr?)) (#:Un procedure?) + . ->* . (or/c SomeValues/c Values/c arr?)) (define (sb t) (substitute-many subst t #:Un Un)) (define names (hash-keys subst)) (define fvs (free-vars* target)) @@ -88,7 +89,8 @@ ;; implements angle bracket substitution from the formalism ;; substitute-dots : Listof[Type] Option[type] Name Type -> Type (define/cond-contract (substitute-dots images rimage name target) - ((listof Type/c) (or/c #f Type/c) symbol? (or/c arr? Values/c) . -> . (or/c arr? Values/c)) + ((listof Type/c) (or/c #f Type/c) symbol? (or/c arr? SomeValues/c Values/c) + . -> . (or/c arr? SomeValues/c Values/c)) (define (sb t) (substitute-dots images rimage name t)) (if (or (set-member? (free-vars-names (free-idxs* target)) name) (set-member? (free-vars-names (free-vars* target)) name))