Designing for Invariant Safety - Invariants in Inheritance | OneNoughtOne