diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/prims.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/prims.rkt index c9de173362..257fc9d720 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/prims.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/prims.rkt @@ -289,7 +289,12 @@ This file defines two sorts of primitives. All of them are provided into any mod (syntax-parse stx [(_ name:id ty:expr) #`(begin - #,(ignore #'(define name (procedure-rename (make-predicate ty) 'name))) + ;; We want the value bound to name to have a nice object name. Using the built in mechanism + ;; of define has better performance than procedure-rename. + #,(ignore + #'(define name + (let ([pred (make-predicate ty)]) + (lambda (x) (pred x))))) ;; not a require, this is just the unchecked declaration syntax #,(internal #'(require/typed-internal name (Any -> Boolean : ty))))]))