Ah, OK. My concern is that if you add that invariant, then this class might not be sufficiently generic for other uses.  Perhaps my concern is premature. We can revisit this later if there is another use case for this class where the invariant causes a problem.