diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/internal.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/internal.rkt deleted file mode 100644 index e3f2a1a87b..0000000000 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/base-env/internal.rkt +++ /dev/null @@ -1,12 +0,0 @@ -#lang racket/base - -(require (for-template racket/base)) - -(provide internal) - -(define (internal stx) - (quasisyntax/loc stx - (define-values () - (begin - (quote-syntax #,stx) - (#%plain-app values))))) 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 dca2627bab..934b16de82 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 @@ -68,7 +68,6 @@ This file defines two sorts of primitives. All of them are provided into any mod racket/struct-info syntax/struct "annotate-classes.rkt" - "internal.rkt" "../utils/tc-utils.rkt" "../private/syntax-properties.rkt" "../types/utils.rkt" diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/internal-forms.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/internal-forms.rkt index 122db8cb9b..b97c316960 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/internal-forms.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/typecheck/internal-forms.rkt @@ -7,6 +7,8 @@ (for-template racket/base)) (provide + (for-syntax internal) + type-alias type-refinement typed-struct @@ -68,7 +70,7 @@ ;;; Internal form syntax matching -(define-syntax-class internal +(define-syntax-class internal^ #:attributes (value) #:literals (values) #:literal-sets (kernel-literals) @@ -87,7 +89,7 @@ (define-syntax-class name #:auto-nested-attributes #:literal-sets ((internal-literals #:at name)) - (pattern i:internal #:with (lit . body) #'i.value)) + (pattern i:internal^ #:with (lit . body) #'i.value)) (define pred (syntax-parser [(~var _ name) #t] @@ -114,3 +116,11 @@ [failed-typecheck (typecheck-fail-internal stx message:str var:id)]) +;;; Internal form creation +(begin-for-syntax + (define (internal stx) + (quasisyntax/loc stx + (define-values () + (begin + (quote-syntax #,stx) + (#%plain-app values))))))