Only the Mixins should have a mask otherwise we are mixing subtyping up with typing. You need a mask for Option[Int] because there's a shared understanding the mask represents values to be excluded.
The interpretation of a series mask is the opposite though - they are values to be included. In any case, if I have the type tenzing_integer(optionMixin) and give you the series [NaN, 1, 2] the mask on the base class should always be tautologically [True, True, True]. The series is of it's type.
Only the Mixins should have a mask otherwise we are mixing subtyping up with typing. You need a mask for Option[Int] because there's a shared understanding the mask represents values to be excluded.
The interpretation of a series mask is the opposite though - they are values to be included. In any case, if I have the type
tenzing_integer(optionMixin)
and give you the series [NaN, 1, 2] the mask on the base class should always be tautologically [True, True, True]. The series is of it's type.