anchor.diff:  %% @doc Checks whether the received notification is a {slide_finished, succ} or
   %%      {slide_finished, pred} msg. Used as filter function for the ring maintanance.
   -spec rm_filter_slide_msg(Neighbors, Neighbors, Reason) -> boolean() when
  -                          Neighbors :: nodelist:neighborhood(),
  -                          Reason :: rm_loop:reason().
  +                          is_subtype(Neighbors, nodelist:neighborhood()),
  +                          is_subtype(Reason, rm_loop:reason()).
   rm_filter_slide_msg(_OldNeighbors, _NewNeighbors, Reason) ->
           Reason =:= {slide_finished, pred} orelse Reason =:= {slide_finished, succ}.
   
  
positive.code: 
  
  -spec cb_call(FunName, CBModule) -> non_neg_integer() | pos_integer() when
      FunName :: min_cycles_per_round | max_cycles_per_round | trigger_interval,
      CBModule :: cb_module().
  cb_call(FunName, CBModule) ->
      cb_call(FunName, [], CBModule).
  
  -spec cb_call(FunName, Args, CBModule) -> Return when
      FunName :: init | min_cycles_per_round | max_cycles_per_round | trigger_interval,
      Args :: list(),
      CBModule :: cb_module(),
      Return :: non_neg_integer() | pos_integer() | {ok, any()}.
  cb_call(FunName, Args, CBModule) ->
      {CBModuleName, _Id} = CBModule,
      apply(CBModuleName, FunName, Args).
  
  
  -spec cb_call(FunName, Arguments, Msg, CBModule, State) -> Return when
      FunName :: cb_fun_name(),
      Arguments :: list(),
      Msg :: message(),
      CBModule :: cb_module(),
      State :: state(),
      Return :: ok | discard_msg
          | send_back | boolean() | {any(), any(), any()} | list({list(), list()}).
  cb_call(FunName, Args, Msg, CBModule, State) ->
      {ModuleName, _InstanceId} = CBModule,
      CBState = state_get(cb_state, CBModule, State),
  
negative.code: 
  -spec tester_create_state(Status, Range, Interval,
      CBState, CBStatus, ExchData, Round, TriggerLock, Cycles) -> state()
      when    is_subtype(Status, init | uninit),
              is_subtype(Range, intervals:interval()),
              is_subtype(Interval, pos_integer()),
              is_subtype(CBState, any()),
              is_subtype(CBStatus, unstarted | started | tombstone),
              is_subtype(ExchData, any()),
              is_subtype(Round, non_neg_integer()),
              is_subtype(TriggerLock, free | locked),
              is_subtype(Cycles, non_neg_integer()).
  tester_create_state(Status, Range, Interval, CBState, CBStatus,
          ExchData, Round, TriggerLock, Cycles) ->
      State = ?PDB:new(state, ?PDB_OPTIONS),
  