anchor.diff:      comm:send(Pid, {get_takeovers_response, Takeovers}),
       State.
   
  --spec compare_and_fix_rm_with_leases(state(), intervals:interval(), intervals:interval(), 
  -                                     lease_list:lease_list(), intervals:interval()) 
  +-spec compare_and_fix_rm_with_leases(state(), intervals:interval(), intervals:interval(),
  +                                     lease_list:lease_list(), intervals:interval())
                                        -> state().
   compare_and_fix_rm_with_leases(State, OldRange, NewRange, LeaseList, MyRange) ->
       ?TRACE("lease list ~w", [LeaseList]),
  
positive.code:         {qread_done, _ReqId, _Round, Lease} ->
              LeaseId = l_on_cseq:get_id(Lease),
              Pid = comm:reply_as(self(), 4, {takeover_after_rm_change, LeaseId, Lease, '_'}),
              l_on_cseq:lease_takeover(Lease, Pid),
              add_takeover(State, Lease);
          _ ->
  
negative.code:             State;
          false ->
              case intervals:is_subset(OldRange, NewRange) of
                  true ->
                      % NewRange > OldRange
                      % my range became larger -> do takeover
                      prepare_takeover(State, MyRange, ActiveRange);
                  false ->
                      case intervals:is_subset(NewRange, OldRange) of
                          true ->
                              % OldRange > NewRange
                              % my range became smaller -> ignore
                              State;
  