At the moment, iterating over the domain entails going from lower to upper bound, and checking whether the value is in the domain or not. We can simplify the implementation of many of the propagators if there is a function that returns an iterator over i32 for a specific domain.