anchor.diff:               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 = []};
  +    MissingRange = intervals:minus(MyRange, ActiveRange),
  +    case intervals:is_empty(MissingRange) of
  +        true ->
               State;
  -        MyRange =:= ActiveRange ->
  -            State;
  -        true ->
  -            MissingRange = intervals:minus(MyRange, ActiveRange),
  +        false ->
               log:log("missing range: ~w", [MissingRange]),
               LeaseId = l_on_cseq:id(MissingRange),
               Pid = comm:reply_as(self(), 3, {read_after_rm_change, MissingRange, '_'}),
  
positive.code: add_takeover(#state{takeovers=Takeovers} = State, Lease) ->
      Id = l_on_cseq:get_id(Lease),
      case gb_trees:lookup(Id, Takeovers) of
          {value, Val} ->
              % @todo ?!?
              State;
          none ->
  
negative.code:             State
      end;
  
  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) ->
      log:log("merge after finish done: ~w", [Result]),
      State.
  
  