diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/abbrev.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/abbrev.rkt index 4cb1940a..258d0983 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/abbrev.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/abbrev.rkt @@ -8,6 +8,7 @@ racket/list racket/match racket/function + racket/undefined unstable/function (prefix-in c: (contract-req)) @@ -91,8 +92,8 @@ (define/decl -Boolean (Un -False -True)) (define/decl -Undefined (make-Base 'Undefined - #'(lambda (x) (equal? (letrec ([y y]) y) x)) ; initial value of letrec bindings - (lambda (x) (equal? (letrec ([y y]) y) x)))) + #'undefined? ; initial value of letrec bindings + undefined?)) (define/decl -Bytes (make-Base 'Bytes #'bytes? bytes?)) (define/decl -Base-Regexp (make-Base 'Base-Regexp #'(and/c regexp? (not/c pregexp?)) diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/utils/any-wrap.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/utils/any-wrap.rkt index 9d68fc3d..18d9c29d 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/utils/any-wrap.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/utils/any-wrap.rkt @@ -3,15 +3,14 @@ (require racket/match racket/contract/combinator racket/fixnum racket/flonum racket/set + racket/undefined (only-in (combine-in racket/private/promise) promise? prop:force promise-forcer)) -(define undef (letrec ([x x]) x)) - (define (base-val? e) (or (number? e) (string? e) (char? e) (symbol? e) - (null? e) (regexp? e) (eq? undef e) (path? e) + (null? e) (regexp? e) (undefined? e) (path? e) (regexp? e) (keyword? e) (bytes? e) (boolean? e) (void? e) ;; Base values because you can only store flonums/fixnums in these ;; and not any higher-order values. This isn't sound if we ever