Dropped: Existential Types

Existential types using forSome have been dropped. The reasons for dropping them were:

Existential types that can be expressed using only wildcards (but not forSome) are still supported, but are treated as refined types. For instance, the type

Map[_ <: AnyRef, Int]

is treated as the type Map, where the first type parameter is upper-bounded by AnyRef and the second type parameter is an alias of Int.

When reading classfiles compiled with scalac, Dotty will do a best effort to approximate existential types with its own types. It will issue a warning that a precise emulation is not possible.