Listの継承の階層

scalaでのListの継承関係を調べてみた。mixinではなく、直接の親クラスを調べただけでも以下のような感じ


sealed abstract class List[+A] extends LinearSeq[A]
with Product
with GenericTraversableTemplate[A, List]
with LinearSeqOptimized[A, List[A]]


trait LinearSeq[+A] extends Seq[A]
with scala.collection.LinearSeq[A]
with GenericTraversableTemplate[A, LinearSeq]
with LinearSeqLike[A, LinearSeq[A]]


trait Seq[+A] extends Iterable[A]
with scala.collection.Seq[A]
with GenericTraversableTemplate[A, Seq]
with SeqLike[A, Seq[A]]


trait Iterable[+A] extends Traversable[A]
with scala.collection.Iterable[A]
with GenericTraversableTemplate[A, Iterable]
with IterableLike[A, Iterable[A]]


trait Traversable[+A] extends scala.collection.Traversable[A]
with GenericTraversableTemplate[A, Traversable]
with TraversableLike[A, Traversable[A]]
with Immutable


trait Traversable[+A] extends TraversableLike[A, Traversable[A]]
with GenericTraversableTemplate[A, Traversable]


traitt TraversableLike[+A, +Repr] extends HasNewBuilder[A, Repr]
with FilterMonadic[A, Repr]
with TraversableOnce[A]


trait HasNewBuilder[+A, +Repr]

多い・・・(´・ω・`)
てか、Listもsealed abstractだから、たしかその下にNilと$colon$colonがいるわけで・・・
なんでこんな階層になっているのか、そのうち調べようと思う。ちゃんと理由がありそうだし。