scala f-bounded types explanation
The advantage would come when it looks something like this: trait Container[A <: Container[A]] extends Ordered[A] { def clone: A def pair: (A, A) = (clone, clone) } class MyContainer extends Container[MyContainer] { def clone = new MyContainer } Now you get pair for free, and you get the correct return type. Without something like … Read more