I note that having a "val domain" as a constructor argument is different than all the other DiscreteVectorVar and CategoricalVectorVar.  I think I'd prefer the uniformity of having the abstract "def domain" like elsewhere.