Solution -- explicit bonus

  class manager : public employee {
  public:
  manager* bonus(int n) { sal += n; return this; }
  };
  

Invariant -- restored

       k + n == ((m->salary(k))->bonus(n))->salary() 
  

slide: Restoring the invariant