diff --git a/racket/typed/core-types.rkt b/racket/typed/core-types.rkt index bbce2c9..caf7cc3 100644 --- a/racket/typed/core-types.rkt +++ b/racket/typed/core-types.rkt @@ -1087,7 +1087,7 @@ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (begin-for-syntax - (define trace-sub? (make-parameter #t)) + (define trace-sub? (make-parameter #f)) ;; Type Type -> Bool ;; subtyping @@ -1406,11 +1406,12 @@ (define-for-syntax (int-def-ctx-bind-type-rename x x- t ctx) (when DEBUG-BINDINGS? (printf "adding to context ~a\n" (syntax-debug-info x))) + (define kind (detach t KIND-TAG)) (syntax-local-bind-syntaxes (list x-) #f ctx) (syntax-local-bind-syntaxes (list x) #`(make-rename-transformer (add-orig - (attach #'#,x- ': #'#,t) + (attach #'#,x- ': (attach #'#,t '#,KIND-TAG #'#,kind)) #'#,x) #;(add-orig (assign-type #'#,x- #'#,t #:wrap? #f) #'#,x)) ctx)) diff --git a/racket/typed/either.rkt b/racket/typed/either.rkt index 8a6face..669c7a7 100644 --- a/racket/typed/either.rkt +++ b/racket/typed/either.rkt @@ -5,7 +5,7 @@ Either left right - #;partition/either) + partition/either) (require "core-types.rkt") (require "core-expressions.rkt") @@ -23,7 +23,7 @@ x) -#;(define (∀ (X Y Z) (partition/either [xs : (List X)] +(define (∀ (X Y Z) (partition/either [xs : (List X)] [pred : (→fn X (U (Left Y) (Right Z)) #;(Either Y Z))] -> (Tuple (List Y) (List Z))))