SCALA2.12で型クラスを組み合わせる同じ引数リスト内の引数を参照できないscala> def sumSizes[A](a1:A,a2:A)(implicitM:Measurable[A], S:Semigroup[M.Size]):| S.append(M.measure(a1),M.measure(a2))<console>:32: error: illegal dependent method type:parameter may only be referenced in a subsequent parameter sectiondef sumSizes[A](a1:A,a2:A)(implicit M:Measurable[A], S:Semigroup[M.Size]):^
ENUMを使ったENUMERATIONの例enum Color{case Red,Yellow,Green}...は以下に展開されるsealed abstract class Color extends scala.Enumobject Color {private val $values = new scala.runtime.EnumValues[Color]def enumValue: Map[Int, Color] = $values.fromIntdef enumValueNamed: Map[String, Color] = $values.fromNamedef enumValues: Iterable[Color] = $values.valuesdef $new(tag: Int, name: String): Color = new Color {def enumTag: Int = tagoverride def toString: String = name$values.register(this)}final val Red: Color = $new(0, "Red")final val Yellow: Color = $new(1, "Yellow")final val Green: Color = $new(2, "Green")}
51.
ENUM によるENUMERATIONは拡張も容易enum Color(valname:String){case Red extends Color("赤")case Yellow extends Color("黃")case Green extends Color("青")}def show(color:Color):Unit = println(color.name)