Can you elaborate on the motivation for attempting to eliminate those things specifically?

This for instance doesn't work, but maybe it doesn't matter:
```
scala> final val x = "abc"
x: String("abc") = abc

scala> elimSingletonAndAnonClass(typeOf[x.type])
res8: $r.intp.global.Type = String

scala> type Foo = x.type
defined type alias Foo

scala> elimSingletonAndAnonClass(typeOf[Foo])
res9: $r.intp.global.Type = Foo

scala> res9.dealias
res10: $r.intp.global.Type = String("abc")
```
I always have that one on the brain due to dealiasWiden.