Scalaでクラスをsealedにする理由とは?
scala.collection.mutable.TreeMap
がsealedで、その他のMap
(例えばHashMap
)がそうでないのは何故でしょうか?(さらに言えば、immutableなTreeMap
はfinal、HashMap
はsealedになっており、修飾子をつける基準が見いだせませんでした。)
Scalaでsealedなクラスを使うのは、case classと組み合わせてパターンマッチの漏れをコンパイラが検出できるようにするためだと思っていたのですが、それ以外に理由はあるのでしょうか?