1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
// cf. pos/t8300-overloading.scala trait Universe { type Name >: Null <: AnyRef with NameApi trait NameApi type TermName >: Null <: Name with TermNameApi trait TermNameApi extends NameApi } object Test extends App { val u: Universe = ??? import u._ def foo(name: Name) = ??? def foo(name: TermName) = ??? }