Это может делать типозависимая типизация в таких языках, как Coq и Agda, но не в Scala.
В зависимости от конкретного варианта использования существуют способы кодирования чисел peano в системе типов, которые могут, однако, вам помочь.
Возможно, вы захотите попробовать определить и Even
, и Odd
вместе с некоторым запечатанным абстрактным супертипом (возможно, OddOrEven
) и фабричным методом, который возвращает правильный экземпляр из любого заданного целого числа.
Другая возможность - определить Even
как экстрактор.