anchor.diff:  
   %% @private
   %% @doc Regular response
  --spec receive_data({call, pid()} | cast | info, term(), statedata()) ->
  +-spec receive_data({call, gen_statem:from()} | cast | info, term(), statedata()) ->
       keep_state_and_data |
       {keep_state, statedata()} |
       {next_state, atom(), statedata()} |
  
positive.code:     end.
  
  %% @private
  -spec create_work({atom(), list()}, pid()) ->
      not_work | {ok, work()}.
  create_work({M = get_async, {HandleEvent, AsyncMode}, Args}, From) ->
      {ok, {M, {HandleEvent, AsyncMode}, Args, From}};
  
negative.code:   end.
  
  %% @private
  -spec enqueue_work_or_stop(atom(), term(), gen_statem:from(), statedata()) ->
    keep_state_and_data |
    {keep_state, statedata()} |
    {keep_state, statedata(), [{timeout, timeout(), get_work}]}.
  enqueue_work_or_stop(_StateName, get_events, From, #{responses := Responses} = StateData) ->
      Reply = queue:to_list(Responses),
      ok = gen_statem:reply(From, Reply),
  