ドキュメントによると、PartiallyOrdered[A]は で共変ですがA、Ordered[A]は で不変です (ただし、以前は共変でした) A。
Ordered[A]で共変だったのはなぜAですか? これは明らかな代替原則の違反ではありませんか?
Ordered[A]で反変になれないのはなぜAですか? これにより、たとえばOrdered[Traversible[Char]]an を an として入力できます。Ordered[StringBuilder]これがどのように問題になるかわかりません。
tryCompareToinの署名を理解するのに苦労していPartiallyOrderedます。引数は の任意のスーパータイプのインスタンスにできるようですA。を呼び出してオブジェクトを渡すことができませんでしたtryCompareTo[Any](anything)か? もしそうなら、メソッドの署名はどのように優れていtryCompareTo(that: Any)ますか?
論理的には、順序集合は部分順序集合のサブクラスですが、Scala クラスはこの関係を反映していないようです。これは、共変できないためですOrdered[A]か?APartiallyOrdered[A]