Function and multi-array type methods get implicit contexts.

Otherwise the context captured by Definitions applies. And that one leads
to illegal types being constructed after erasure.

We should think how we can better avoid the trap of captured contexts here.
Eliminate Ident/Select types in FirstTransform

Ident, Select, SelectFromTypeTrees denoting types should be eliminated
at some point. FirstTransform seems to be the logical place because
it already eliminates other forms of type trees.
Ensure that after erasure all types are erased.

Defines a predicate isErasedTypes and checks that all tree types
and their widened underlying types are erased.