anchor.diff:  state_get_lacceptor(State)     -> element(4, State).
   -spec state_get_gllearner(state() | state_uninit()) -> comm:mypid().
   state_get_gllearner(State) -> element(5, State).
  -% -spec state_get_subs(state() | state_uninit()) ->
  -%                             [{comm:mypid(), non_neg_integer()}].
  -% state_get_subs(State)          -> element(6, State).
  +-spec state_get_subs(state()) -> [{comm:mypid(), non_neg_integer()}].
  +state_get_subs(State)          -> element(6, State).
  +-spec state_set_subs(state(), [{comm:mypid(), non_neg_integer()}]) -> state().
  +state_set_subs(State, Val)          -> setelement(6, State, Val).
   -spec state_get_qmsg(state_uninit()) -> msg_queue:msg_queue().
   state_get_qmsg(State)          -> element(7, State).
   -spec state_set_qmsg(state_uninit(), msg_queue:msg_queue()) -> state_uninit().
  
positive.code:     %%msg_delay:send_local(1 + InRole, self(), {tx_tm_rtm_propose_yourself, Tid}),
      %% after timeout take over and initiate new paxos round as proposer
      %% done in on({tx_tm_rtm_propose_yourself...}) handler
      State;
  
  % received by RTMs
  on({register_TP, {Tid, ItemId, PaxosID, TP}} = Msg, State) ->
  
negative.code:             %% In the future, we will handle this using msg_delay for
              %% outstanding txids to trigger a delete of the items.
      end,
      NewState;
  
  %% generated by on(register_TP) via msg_delay to not increase memory
  %% footprint
  