Problems: Optimising software.
Invariant optimisation code movement
Imagine I have a nested loop and I do lots of work in this nested loop. Wouldn't it be more efficient to do some of this work incrementally such as when objects are created?
Invariants such as item.size() < 100 or this number greater than this number are really powerful for enforcing behaviour.
I propose we use invariants to optimise code.