Building a default namespace consciously rather than accretively.
Building a default namespace consciously rather than accretively.
Primarily these are various "magic" types which cannot be avoided
due to language privilege. An incomplete list:
all top and bottom types are treated specially
as are all primitive types and unit
Seq, Option, and TupleN are hardcoded into extractors
Seq is hardcoded into varargs
Arrays are everywhere special
Lists are specially optimized by the compiler
StringContext is required for string interpolation
ClassTags are synthesized by the compiler
BigDecimal/BigInt are treated specially for equality
Dynamic has special semantics
Function1 has special syntax and much special handling
PartialFunction has all of Function1's and then some
DelayedInit is very special but it's garbage so omitted
Building a default namespace consciously rather than accretively. Primarily these are various "magic" types which cannot be avoided due to language privilege. An incomplete list: