anchor.diff:                      if
                           Id0 =/= OldId ->
                               {false, {unexpected_id, Current, Next}};
  -                        % @todo remove owner check
  -                        O0 =/= OldOwner->
  +                        O0 =/= OldOwner ->
                               {false, {unexpected_owner, Current, Next}};
                           Aux0 =/= OldAux ->
                               {false, {unexpected_aux, Current, Next}};
  
positive.code:                          "the version has to increase by one"),
                      ?WARN(OldEpoch + 1 =:= NewEpoch, 
                            0 =:= NewVersion,
                           "the version has to be zero after an epoch update"),
                      % check that the id does not change
                      ?WARN(OldId =/= NewId, false, "the id may never change"),
                      % check for correct behavior for the remaining fields
                      ?WARN(OldOwner =/= NewOwner, 
                            EpochUpdate, 
                            "the owner changed without an epoch update"),
                      ?WARN(OldRange =/= NewRange, 
                           EpochUpdate,
                           "the range changed without an epoch update"),
                      ?WARN(OldAux =/= NewAux, 
                           EpochUpdate,
                           "the aux changed without an epoch update"),
                      ?WARN(OldTimeout =/= NewTimeout, 
                           VersionUpdate,
                           "the timeout changed without a version update"),
                      ?WARN(OldTimeout =/= NewTimeout, 
                           OldTimeout < NewTimeout,
                           "the timeout changed without a version update"),
                      {true, null};
                  % epoch and/or version did not match: give useful error message
                  #lease{id = Id0, epoch = E0, owner = O0, range = R0, aux = Aux0, 
  
negative.code:                         E0 =/= OldEpoch ->
                              {false, {unexpected_epoch, Current, Next}};
                          V0 =/= OldVersion ->
                              {false, {unexpected_version, Current, Next}}%;
                          %not (T0 < NewTimeout) ->
                          %    {false, {timeout_is_not_newer_than_current_lease, Current, Next}}
                      end
              end
      end.
  