_and(Range -> _equals(2), ...))
Range
Property is empty (it's an Optional Whole Number), then Range -> _equals(2)
seems to be evaluating to True or being ignored - the _and
just evaluates to whatever its second argument is. This isn't what I'd expect.