anchor.diff:              State
       end;
   
  -on({merge_after_rm_change, L2, ActiveLease, Result}, State) ->
  +on({merge_after_rm_change, _L2, _ActiveLease, Result}, State) ->
       log:log("merge after rm_change: ~w", [Result]),
       State;
   
  -on({merge_after_leave, NewLease, OldLease, Result}, State) ->
  +on({merge_after_leave, _NewLease, _OldLease, Result}, State) ->
       log:log("merge after finish done: ~w", [Result]),
       State.
   
  
positive.code:              end,
      log:log("lease list ~w", [LeaseList]),
      ActiveRange = lease_list:get_active_range(LeaseList),
      EmptyInterval = intervals:empty(),
      if
          ActiveRange =:= EmptyInterval ->
              MissingRange = MyRange,
              log:log("missing range: ~w", [MissingRange]),
              LeaseId = l_on_cseq:id(MissingRange),
              Pid = comm:reply_as(self(), 3, {read_after_rm_change, MissingRange, '_'}),
              l_on_cseq:read(LeaseId, Pid),
              %#op{missing_range = MissingRange, found_leases = []};
              State;
          MyRange =:= ActiveRange ->
              State;
          true ->
              MissingRange = intervals:minus(MyRange, ActiveRange),
              log:log("missing range: ~w", [MissingRange]),
              LeaseId = l_on_cseq:id(MissingRange),
              Pid = comm:reply_as(self(), 3, {read_after_rm_change, MissingRange, '_'}),
  
negative.code:     log:log("state: ~w", [State]),
      compare_and_fix_rm_with_leases(State);
  
  on({read_after_rm_change, _MissingRange, Result}, State) ->
      log:log("read_after_rm_change ~w", [Result]),
      case Result of
          {qread_done, _ReqId, _Round, Lease} ->
  