Scala cross-version type introspection