Scala makes a big deal about how what seem to be language features are implemented as library features.

Is there a list of types that are treated specially by the language?

Either in the specification or as an implementation detail?

That would include, for example, optimizing away matches on tuples.

What about special conventions related to pattern matching, for comprehensions, try-catch blocks and other language constructs?

Is String somehow special to the compiler? I see that String enhancement is just a library implicit conversion, and that String concatenation is supported by Predef , but is that somehow special-cased by the language?

Similarly, I see questions about <:< and classOf and asInstanceOf , and it's not clear what is a magical intrinsic. Is there a way to tell the difference, either with a compiler option or by looking at byte code?

I would like to understand if a feature is supported uniformly by implementations such as Scala.JS and Scala-native, or if a feature might actually prove to be implementation-dependent, depending on the library implementation.