The Scala compiler API. 

The following resources are useful for Scala plugin/compiler development:
  - [[http://www.scala-lang.org/node/215 Scala development tutorials]] on [[http://www.scala-lang.org www.scala-lang.org]] 
  - [[https://wiki.scala-lang.org/display/SIW/ Scala Internals wiki]] 
  - [[http://lampwww.epfl.ch/~magarcia/ScalaCompilerCornerReloaded/ Scala compiler corner]], maintained by Miguel 
This is the documentation for the Scala standard library.

== Package structure ==

The [[scala]] package contains core types.

[[scala.collection `scala.collection`]] and its subpackages contain a collections framework with higher-order functions for manipulation. Both [[scala.collection.immutable `scala.collection.immutable`]] and [[scala.collection.mutable `scala.collection.mutable`]] data structures are available, with immutable as the default. The [[scala.collection.parallel `scala.collection.parallel`]] collections provide automatic parallel operation.

Other important packages include:

  - [[scala.actors `scala.actors`]] - Concurrency framework inspired by Erlang.
  - [[scala.io     `scala.io`]]     - Input and output.
  - [[scala.math   `scala.math`]]   - Basic math functions and additional numeric types.
  - [[scala.sys    `scala.sys`]]    - Interaction with other processes and the operating system.
  - [[scala.util.matching `scala.util.matching`]] - Pattern matching in text using regular expressions.
  - [[scala.util.parsing.combinator `scala.util.parsing.combinator`]] - Composable combinators for parsing.
  - [[scala.xml    `scala.xml`]]    - XML parsing, manipulation, and serialization.

Many other packages exist.  See the complete list on the left.

== Automatic imports ==

Identifiers in the scala package and the [[scala.Predef `scala.Predef`]] object are always in scope by default.

Some of these identifiers are type aliases provided as shortcuts to commonly used classes.  For example, `List` is an alias for
[[scala.collection.immutable.List `scala.collection.immutable.List`]].

Other aliases refer to classes provided by the underlying platform.  For example, on the JVM, `String` is an alias for `java.lang.String`.
