# Renaming mechanism for Unicode \`λ\` in Racket

**URL:** <https://racket.discourse.group/t/renaming-mechanism-for-unicode-in-racket/2910>\
**Category:** General\
**Created:** [May 8, 2024, 5:12pm UTC](https://racket.discourse.group/t/renaming-mechanism-for-unicode-in-racket/2910 "2024-05-08T17:12:57Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![NoahStoryM](https://yyz2.discourse-cdn.com/free1/user_avatar/racket.discourse.group/noahstorym/32/17_2.png) [@NoahStoryM](https://racket.discourse.group/u/NoahStoryM)\
**Post date:** [May 8, 2024, 5:12pm UTC](https://racket.discourse.group/t/renaming-mechanism-for-unicode-in-racket/2910/1 "2024-05-08T17:12:57Z")

</div>

I'm considering whether it's necessary and beneficial to define `λ` through the renaming mechanism. @sorawee pointed out that `lambda` and `λ` are not treated as equivalent by `free-identifier=?`:

```scheme
#lang racket

(module sub racket
  (provide my-case-lambda
           (rename-out [my-case-lambda my-case-λ]))
  (define my-case-lambda 1))

(require syntax/parse/define
         'sub)

(define-syntax-parse-rule (test a b)
  #:do [(println (free-identifier=? #'a #'b))]
  (void))

(test my-case-lambda my-case-λ) ;=> #t
(test lambda λ) ;=> #f

```

If I understand correctly, `lambda` and `λ` in `racket/base` are respectively `new-lambda` and `new-λ` in `racket/private/kw.rkt`:

```scheme
(define-syntaxes (new-lambda new-λ)
  (let ([new-lambda ...])
    (values new-lambda new-lambda)))

```

Based on this, should we consider:

- Implementing `λ` through renaming to ensure that it is equivalent to `lambda`?
- Investigating the potential impact on existing code that might rely on the current behavior?

[Define `λ` through the renaming mechanism.](https://github.com/racket/racket/pull/4991)

---

_[View the full topic](https://racket.discourse.group/t/renaming-mechanism-for-unicode-in-racket/2910)._
