scala package直下のクラスを(ほぼ)全部かなり大雑把に解説してみる

scalaパッケージ直下のものは、デフォルトで名前空間に入ってるので、重要だろう!(`・ω・´)
ということで、自分なりにまとめてみるテスト。
とりあえず知ってる限りの知識を書き出してみる。
解説になってないところとか、間違ってる可能性もあるので、全部信じないでください(´Д`)

Annotation

アノテーションのためのマーカー。中身はなし
Application

継承して使う。mainが定義されてる。あとちょっとした隠し機能として、時間計れるれるようになってる。ただそれだけ。
初心者のうちしか使わない?っていうかこれ使うメリットあまり感じないんだけど
Array

Javaの配列に対応するクラス。
Cell

なんだっけ?(爆)あとで調べよう
ClassfileAnnotation

classfileにつけるAnnotation?
cloneable

cloneableなクラス(コピー出来るという意味?)につけるアノテーション
Console

Console使うときのユーティリティっぽいメソッドが定義してあるobject?
CountedIterator

deprecatedらしいので、ほっとく
deprecated

非推奨を表すアノテーション(Javaにも同じのあるはずだけど、scalaのStaticAnnotation継承しないと都合悪いから、わざわざつくったのかな?)
Either

Either自体は、sealed abstract。サブクラスにRightとLeftがあって、成功したらRight、失敗したらLeftを返すという使い方する。ゆろよろさんのエントリとか参考になる
Enumeration

enum用。継承して、Valueってメソッド呼ぶことによってつかう。個人的にはちょっと使いづらい気がする。 余談だけど、scalaJavaEnumクラスって継承できちゃうんですね。継承しても大して使いやすくもないけど(´・ω・`)
Equals

canEqualってメソッド定義してある。See Programming in Scala, Chapter 28 for discussion and designって・・・(´・ω・`)
本持ってない人はどうするねん(゚Д゚)。簡単にいうと、親クラスと子クラスで、そもそもequalsで比べること自体が可能かどうかっていう問題があるから、 canEqualってメソッド実装して、比べること自体可能かどうかを返すようにしろってことらしい。scalaのライブラリではかなり多くのクラスがこのクラス継承してるみたい
Function

カリー化とかのユーティリティメソッド定義してあるけど、あまりつかったことないなぁ・・・。古くからあるみたいで、deprecatedが多いし。
Function0 から 22

関数オブジェクト。0から22は引数の数。mapやforeachとかの引数に、無名関数として渡したりとかすると、実態はこのクラスのインスタンスになってる。 実は直接明示的に継承することもできて、そうすると、いろいろ便利だったりする。
Immutable

collectionで、変更不可能表すための、マーカー。中身ないのになんでアノテーションじゃないんだろう?
inline

コンパイラに、可能だったらinline化してくれって頼むためのアノテーション
LowPriorityImplicits

プリミティブ型をラップするため。暗黙変換のためで、直接使うことは殆ど無いと思う。
MatchError

パターンマッチが失敗した時に投げられるエラー
Math

全部deprecatedだしwww
MathCommon

private[scala]なので(つまりユーザーは直接使えない)、あんまり知っておく必要無さそう。scalaパッケージのpackage objectとかが使ってるみたい
Mutable

変更可能なcollectionのためのマーカー。Immutableとセットでversion2.8から導入されたらしい
native

Javaのnativeキーワードと同じ働き(をするアノテーション)。
ところで、なんで、nativeをキーワードじゃなくてアノテーションにしたんだろう?
noinline

inline化するなってコンパイラさんに頼むためのアノテーション(だと思う)
NotDefinedError

class自体がdeprecatedだから気にするな。
NotNull

nullにならないって示すマーカー?
Option

メソッドの戻り値とかで、成功したらSome(に成功した値を包んで)返す。失敗したら、Noneを返すって感じでつかう。
package

パッケージオブジェクト。ほとんどエイリアスとか定義してあるだけ。
PartialFunction

Function1を継承してる。Mapとかが、このクラス継承してて、結構重要なクラスだと思う
Predef

このクラスのメンバーは勝手にimportされる。超重要
ProductとProduct1から22

それぞれ、Tuple1からTuple22の親クラスになってる。
また、case class定義すると、自動的に、このクラス継承するようになってる。 その場合、ベースのコンストラクタの引数の数と、ProductNのNにあたる数が対応。 例えば、
case class Hoge(a:Int,b:String,c:String)
って定義したら、Product3を自動で継承する
productIteratorってメソッド使うことによって、それぞれの要素をまとめて操作できたりする
Proxy

プロキシつくる?あまり使ったことない、っていうか使い方しらない・・・orz
remote

アノテーション。コメントにremotableってあるけど、どういう意味?
Responder

イマイチよくわからん(爆)
とりあえずユーティリティみたいだけど、あまり使ってるとこ見たことない
ScalaObject

scalaでclass定義すると、自動でこのクラス継承。メソッドは特にないけど、将来何か追加する予定でもあるのかな?
serializable

シリアライズのためのアノテーション
SerialVersionUID

シリアライズのためのアノテーション
StaticAnnotation

アノテーションのための基本クラス。
Symbol

シンボル表すクラス。もちろん、finalでコンストラクタはprivateなので明示的にインスタンス化できない。 クオート使って、リテラルとしてコード打つと、コンパイラが勝手にSymbolクラスのインスタンス生成。 個人的には、Stringでよくね?って場面の方が多いので、あまり使ってない
throws

アノテーション。使い方としてはJavaのthrowsキーワードと同じ。
transient

アノテーション。これもJavaの同名のキーワードと同じ
Tuple1 から Tuple22

言わずと知れた(?)、なくてはならない(?)、一度使って慣れたら便利すぎて、Javaになんでないんだよ(゚Д゚)!!!とか思う。 ところでFunctionもそうだけど、なぜ22までなのか?その昔は9までだったらしいけど。まぁどうでもいいか。そんなに多いの使わないし。
TypeConstraint

アノテーション。使ったことない、使い方知らない・・・orz
unchecked

アノテーション。たぶんmatch式の警告とか抑止するため
UninitializedError

エラー。まあ名前からして、初期化されてない? or できない? こと表すんだろう。
UninitializedFieldError

同上
volatile

アノテーションJavaの同名のキーワードと同じ機能