I recently coded with Julia and this language support UTF8 identifiers as \pi or \sqrt. It’s possible to add some kind of UTF-8 identifiers that will be translated into textual ASCII for Java compatibility.

For example, we will have this code :

```
val π = 3.14... // in Kotlin (accessible by \pi)
```

should be compiled into

```
double pi = 3.14...
```

and

```
val π = 3.14
val pi = 3.14 // Redefinition of val pi
```

should fail because π == pi as an identifier.

Those identifiers allow to have a clearer syntax for mathematical purposes like:

```
fun f(x: Number) = √(x + 3x.²)
fun g(x: Number) = 4 * x + 5
typealias MFunction = (Number) -> Number
infix MFunction.○(f: MFunction) = { x: Number -> this(f(x)) }
val h = g ○ f
```