λ
Size: a a a
λ
λ
λ
ΛВ
M
M
ΛВ
ЮБ
M
object CumulativeCoefficient extends TaggedType0[BigDecimal]{
val max:Type = TaggedOps(this)(BigDecimal(2))
//... или любая другая логика вместо Either
def apply(value:Long):Either[String,Type] = ...validate > 0 and <= max..
}
type CumulativeCoefficient = CumulativeCoefficient.Type
M
ΛВ
ЮБ
M
M
Amount
- ты уже закодировал ментально ограничения, вынес в тип. А раз вынес - значит появилась необходимость по максимуму исключить возможность выстрела в ногу, который нарушит твое кодирование и внутреннюю гармонию)ЮБ
ΛВ
ΛВ
ЮБ
ЮБ
ΛВ