半群は連想する必要がありますが、次のSemigroup
ように定義できます。
trait Semigroup[T] {
def op(t1:T, t2:T) : T
}
def plus = new Semigroup[Int] { def op(t1:Int, t2:Int) = t1 - t2 }
連想しないものを実装できますがplus
、クラスはまだSemigroup
. これに対する保護手段はありますか、それともユーザーはこれを防ぐためにテストに頼ることが期待されていますか?