diff --git a/typed-racket-compatibility/typed/scheme/base.rkt b/typed-racket-compatibility/typed/scheme/base.rkt index 53e596760..669f4cc69 100644 --- a/typed-racket-compatibility/typed/scheme/base.rkt +++ b/typed-racket-compatibility/typed/scheme/base.rkt @@ -4,7 +4,7 @@ with-handlers with-handlers* default-continuation-prompt-tag define λ lambda define-struct for for* let let* let-values let*-values letrec letrec-values - let/cc let/ec do case-lambda + let/cc let/ec do case-lambda case-λ for/list for/vector for/hash for/hasheq for/hasheqv for/hashalw for/and for/or for/sum for/product for/lists for/first for/last for/fold for/foldr for*/list for*/lists diff --git a/typed-racket-doc/typed-racket/scribblings/reference/legacy.scrbl b/typed-racket-doc/typed-racket/scribblings/reference/legacy.scrbl index 57b864495..6346de55d 100644 --- a/typed-racket-doc/typed-racket/scribblings/reference/legacy.scrbl +++ b/typed-racket-doc/typed-racket/scribblings/reference/legacy.scrbl @@ -27,8 +27,7 @@ A function of the formal arguments @racket[v], where each formal argument has the associated type. If a rest argument is present, then it has type @racket[(Listof t)].} -@defform[(λ: formals maybe-ret . body)]{ -An alias for the same form using @racket[lambda:].} +@defalias[λ: lambda: "syntax"] @defform*[[(plambda: (a ...) formals maybe-ret . body) (plambda: (a ... b ooo) formals maybe-ret . body)]]{ diff --git a/typed-racket-doc/typed-racket/scribblings/reference/special-forms.scrbl b/typed-racket-doc/typed-racket/scribblings/reference/special-forms.scrbl index d785522a9..27129151d 100644 --- a/typed-racket-doc/typed-racket/scribblings/reference/special-forms.scrbl +++ b/typed-racket-doc/typed-racket/scribblings/reference/special-forms.scrbl @@ -189,8 +189,7 @@ is the provided type annotation. ] } -@defform[(λ maybe-tvars formals maybe-ret . body)]{ -An alias for the same form using @racket[lambda].} +@defalias[λ lambda "syntax"] @defform[(case-lambda maybe-tvars [formals body] ...)]{ @@ -214,6 +213,8 @@ Note that each @racket[formals] must have a different arity. To see how to declare a type for @racket[add-map], see the @racket[case->] type constructor.} +@defalias[case-λ case-lambda "syntax"] + @section{Loops} @defform/subs[(for void-ann-maybe (for-clause ...) void-ann-maybe expr ...+) diff --git a/typed-racket-lib/typed-racket/base-env/prims-lambda.rkt b/typed-racket-lib/typed-racket/base-env/prims-lambda.rkt index d1312a62c..37f64db1b 100644 --- a/typed-racket-lib/typed-racket/base-env/prims-lambda.rkt +++ b/typed-racket-lib/typed-racket/base-env/prims-lambda.rkt @@ -17,6 +17,7 @@ (provide (rename-out [-case-lambda case-lambda] [-case-lambda case-lambda:] + [-case-lambda case-λ] [lambda: λ:]) pcase-lambda: plambda: diff --git a/typed-racket-lib/typed-racket/private/with-types.rkt b/typed-racket-lib/typed-racket/private/with-types.rkt index ce24257c4..316273273 100644 --- a/typed-racket-lib/typed-racket/private/with-types.rkt +++ b/typed-racket-lib/typed-racket/private/with-types.rkt @@ -28,7 +28,7 @@ (except-in racket/base for for* with-handlers with-handlers* lambda λ define let let* letrec letrec-values let-values let*-values - let/cc let/ec do case-lambda struct define-struct + let/cc let/ec do case-lambda case-λ struct define-struct default-continuation-prompt-tag for/list for/vector for/hash for/hasheq for/hasheqv for/hashalw for/and for/or for/sum for/product for/lists diff --git a/typed-racket-lib/typed/racket/base.rkt b/typed-racket-lib/typed/racket/base.rkt index 993a3ed89..41d8807fe 100644 --- a/typed-racket-lib/typed/racket/base.rkt +++ b/typed-racket-lib/typed/racket/base.rkt @@ -4,7 +4,7 @@ with-handlers with-handlers* default-continuation-prompt-tag define λ lambda define-struct for for* let let* let-values let*-values letrec letrec-values - let/cc let/ec do case-lambda struct + let/cc let/ec do case-lambda case-λ struct for/list for/vector for/hash for/hasheq for/hasheqv for/hashalw for/and for/or for/sum for/product for/lists for/first for/last for/fold for/foldr for*/list for*/lists diff --git a/typed-racket-test/succeed/unicode-aliases.rkt b/typed-racket-test/succeed/unicode-aliases.rkt index 3e0bc593c..eea79c33f 100644 --- a/typed-racket-test/succeed/unicode-aliases.rkt +++ b/typed-racket-test/succeed/unicode-aliases.rkt @@ -6,3 +6,11 @@ (cons (symbol? s) i))) (foo 'abc) (foo "abc") + +(: bar (∀ () (case→ (→ True) (→ Any False)))) +(define bar + (case-λ + [() #t] + [([_ : Any]) #f])) +(bar) +(bar bar)