Не будет никаких исключений при компиляции, которые не имеют свойства ассоциативности. Другими словами, вам нужно убедиться, что он реализован правильно.
Но если вы используете кошек, вы можете использовать l aws, чтобы убедиться, что все свойства, необходимые для полугруппы и других структур, определенных в кошках , Взгляните на документацию . Вы можете создать тест, чтобы проверить, в порядке ли заданная вами полугруппа:
class TreeLawTests extends AnyFunSuite with Discipline {
checkAll("YourSemigroup[YourType].SemigroupLaws", SemigroupTests[YourSemigroup[YourType]].semigroup)
}