Scalaの依存型ライブラリrefinedで「W.`数字`.T」・「W.`"文字列".T」とせずに「数字」・「”文字列”」と書いても動いた件


以下の記事では、

__W.`数字`.T__
__W.`"文字"`.T__

でないとコンパイルエラーになると書かれていました。

https://qiita.com/iHideck/items/00cd683027b859f68782

refined "0.9.27"を動かしたところ、

https://qiita.com/electronics_diy721/items/b1df3cc2c5510a5f92c8

__W.`数字`.T__
__数字__
__W.`"文字"`.T__
__"文字"__
のどれでも動いた。

```Scala:REPL(Terminal)
scala> val endWithS: String Refined EndsWith[W.`"l"`.T] = "Goal"
val endWithS: eu.timepit.refined.api.Refined[String,eu.timepit.refined.string.EndsWith[String("l")]] = Goal

scala> val endWithS: String Refined EndsWith["l"] = "Goal"
val endWithS: eu.timepit.refined.api.Refined[String,eu.timepit.refined.string.EndsWith["l"]] = Goal

scala> 
```


```Scala:REPL(Terminal)
scala> val a: Int Refined Interval.Closed[0, 10] = 2
val a: eu.timepit.refined.api.Refined[Int,eu.timepit.refined.numeric.Interval.Closed[0,10]] = 2

scala> val a: Int Refined Interval.Closed[W.`0`.T, W.`10`.T] = 2
val a: eu.timepit.refined.api.Refined[Int,eu.timepit.refined.numeric.Interval.Closed[Int(0),Int(10)]] = 2

scala> val a: Int Refined Interval.Closed[0, 10] = 11
                                                   ^
       error: Right predicate of (!(11 < 0) && !(11 > 10)) failed: Predicate (11 > 10) did not fail.

scala> val a: Int Refined Interval.Closed[W.`0`.T, W.`10`.T] = 11
                                                               ^
       error: Right predicate of (!(11 < 0) && !(11 > 10)) failed: Predicate (11 > 10) did not fail.

scala> 

```


```Scala:REPL(Terminal)
scala> val a: Int Refined (Not[Less[0]] And Not[Greater[10]]) = 8
val a: eu.timepit.refined.api.Refined[Int,eu.timepit.refined.boolean.And[eu.timepit.refined.boolean.Not[eu.timepit.refined.numeric.Less[0]],eu.timepit.refined.boolean.Not[eu.timepit.refined.numeric.Greater[10]]]] = 8

scala> val a: Int Refined (Not[Less[0]] And Not[Greater[10]]) = 10
val a: eu.timepit.refined.api.Refined[Int,eu.timepit.refined.boolean.And[eu.timepit.refined.boolean.Not[eu.timepit.refined.numeric.Less[0]],eu.timepit.refined.boolean.Not[eu.timepit.refined.numeric.Greater[10]]]] = 10

scala> val a: Int Refined (Not[Less[0]] And Not[Greater[10]]) = 11
                                                                ^
       error: Right predicate of (!(11 < 0) && !(11 > 10)) failed: Predicate (11 > 10) did not fail.

scala> val a: Int Refined (Not[Less[W.`0`.T]] And Not[Greater[W.`10`.T]]) = 8
val a: eu.timepit.refined.api.Refined[Int,eu.timepit.refined.boolean.And[eu.timepit.refined.boolean.Not[eu.timepit.refined.numeric.Less[Int(0)]],eu.timepit.refined.boolean.Not[eu.timepit.refined.numeric.Greater[Int(10)]]]] = 8

scala> val a: Int Refined (Not[Less[W.`0`.T]] And Not[Greater[W.`10`.T]]) = 10
val a: eu.timepit.refined.api.Refined[Int,eu.timepit.refined.boolean.And[eu.timepit.refined.boolean.Not[eu.timepit.refined.numeric.Less[Int(0)]],eu.timepit.refined.boolean.Not[eu.timepit.refined.numeric.Greater[Int(10)]]]] = 10

scala> val a: Int Refined (Not[Less[W.`0`.T]] And Not[Greater[W.`10`.T]]) = 11
                                                                            ^
       error: Right predicate of (!(11 < 0) && !(11 > 10)) failed: Predicate (11 > 10) did not fail.

scala> 
```