anchor.diff:  
   %% @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}]}.
  +    {keep_state, statedata(), [{reply, gen_statem:from(), list()}]} |
  +    {keep_state, statedata(), [{timeout, timeout(), get_work}]} |
  +    {keep_state_and_data, [{reply, gen_statem:from(), {error, {unexpected, atom()}}}]}.
   enqueue_work_or_stop(_StateName, get_events, From, #{responses := Responses} = StateData) ->
       Reply = queue:to_list(Responses),
       {keep_state, StateData#{responses := queue:new()}, [{reply, From, Reply}]};
  
positive.code: %% @private
  %% @doc Regular response
  -spec receive_data({call, gen_statem:from()} | cast | info, term(), statedata()) ->
      keep_state_and_data |
      {keep_state, statedata()} |
      {next_state, atom(), statedata()} |
      {next_state, atom(), statedata(), timeout()}.
  receive_data({call, From}, Event, StateData) ->
      enqueue_work_or_stop(receive_data, Event, From, StateData);
  receive_data(cast, {'DOWN', _, _, _, _Reason}, _StateData) ->
  
negative.code: %If we don't, stay in at_rest.
  %% @private
  -spec at_rest({call, gen_statem:from()} | cast | info, term(), statedata()) ->
      {keep_state_and_data, [{reply, gen_statem:from(), {error, {unexpected, atom()}}}]} |
      {keep_state, statedata(), [{reply, gen_statem:from(), list()}]} |
      {keep_state, statedata(), [{timeout, timeout(), get_work}]} |
      {next_state, atom(), statedata()}.
  at_rest({call, From}, Event, StateData) ->
      enqueue_work_or_stop(at_rest, Event, From, StateData);
  at_rest(cast, {'DOWN', _, _, _, Reason}, _StateData) ->
  