diff --git a/collects/typed-scheme/types/resolve.rkt b/collects/typed-scheme/types/resolve.rkt index 8ece6d6bc9..fe0250efa0 100644 --- a/collects/typed-scheme/types/resolve.rkt +++ b/collects/typed-scheme/types/resolve.rkt @@ -39,8 +39,8 @@ (tc-error "Structure type constructor ~a applied to non-regular arguments ~a" rator rands)) (let ([r (resolve-name rator)]) (and r (resolve-app r rands stx)))] - [(Mu: _ _) (resolve-app (unfold rator) rands)] - [(App: r r* s) (resolve-app (resolve-app r r* s) rands)] + [(Mu: _ _) (resolve-app (unfold rator) rands stx)] + [(App: r r* s) (resolve-app (resolve-app r r* s) rands stx)] [_ (tc-error "cannot apply a non-polymorphic type: ~a" rator)]))) (define (needs-resolving? t) diff --git a/collects/typed-scheme/types/subtype.rkt b/collects/typed-scheme/types/subtype.rkt index 548a6bf8c8..4d098fa4eb 100644 --- a/collects/typed-scheme/types/subtype.rkt +++ b/collects/typed-scheme/types/subtype.rkt @@ -106,7 +106,7 @@ (if ;; if s is optional, t must be as well (or rs (not rt)) - (loop (subtype A tt ts) rest-t rest-s) + (loop (subtype* A tt ts) rest-t rest-s) (fail! t s))] ;; extra keywords in t are ok ;; we just ignore them