anchor.diff:      is_subtype(FunName, cb_fun_name()),
       is_subtype(Arguments, list()),
       is_subtype(Msg, message()),
  -    is_subtype(CBModule, cb_module_name()),
  +    is_subtype(CBModule, cb_module_id()),
       is_subtype(State, state()),
       is_subtype(Return, ok | discard_msg
           | send_back | boolean() | {any(), any(), any()} | list({list(), list()})).
  
positive.code: 
  
  %% checks the convergence of the current round (only called at leader)
  -spec is_end_of_round(CBModule::cb_module_name(), State::state()) -> boolean().
  is_end_of_round(CBModule, State) ->
      Cycles = state_get(cycles, CBModule, State),
      log:log(debug, "[ Gossip ] check_end_of_round. Cycles: ~w", [Cycles]),
  
negative.code: %%              (allowed values: free, locked) </li>
  %%        <li>`cycles', cycle counter, </li>
  %%      </ul>
  -spec state_get(Key::state_key_cb(), CBModule::cb_module_id(), State::state()) -> any().
  state_get(Key, CBModule, State) ->
      state_get({Key, CBModule}, State).
  
  