anchor.diff:  %% @doc Returns whether a slide operation is possible, i.e. MySlide is null and
   %%      OtherSlide is either null or not overlapping with TargetId.
   %%      Helper for can_slide_succ/2 and can_slide_pred/2.
  --spec can_slide(MySlide::slide_op:slide_op(), OtherSlide::slide_op:slide_op(), TargetId::?RT:key()) -> boolean().
  +-spec can_slide(MySlide::slide_op:slide_op() | null,
  +                OtherSlide::slide_op:slide_op() | null, TargetId::?RT:key()) -> boolean().
   can_slide(MySlide, OtherSlide, TargetId) ->
       MySlide =:= null andalso
           (OtherSlide =:= null orelse
  
positive.code:                     end;
                  'send' -> % can not send if TargetId is not in my range!
                      abort_slide(State, node:pidX(TargetNode), MoveFullId, SourcePid, Tag,
                                  PredOrSucc, target_id_not_in_range, true);
                  'rcv' when PredOrSucc =:= pred ->
                      % slide with pred, receive data
                      SlideOp = slide_op:new_receiving_slide(
  
negative.code:                   NotifyNode::boolean()) -> dht_node_state:state().
  abort_slide(State, SlideOp, Pred_or_Succ, Reason, NotifyNode) ->
      % write to log when aborting an already set-up slide:
      log:log(warn, "abort_slide(op: ~.0p, ~.0p, reason: ~.0p)~n",
              [SlideOp, Pred_or_Succ, Reason]),
      slide_op:reset_timer(SlideOp), % reset previous timeouts
      % potentially set up for joining nodes (slide with pred):
  