What types are special to the Scala compiler? : <p>Scala makes a big deal about how what seem to be language features are implemented as library features.</p>

<p>Is there a list of types that are treated specially by the language?</p>

<p>Either in the specification or as an implementation detail?</p>

<p>That would include, for example, optimizing away matches on tuples.</p>

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

<p>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 <code>Predef</code>, but is that somehow special-cased by the language?</p>

<p>Similarly, I see questions about <code>&lt;:&lt;</code> and <code>classOf</code> and <code>asInstanceOf</code>, 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?</p>

<p>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.</p>
