anchor.diff:              state_getopts(P, D, State, Tags, [{Tag, Value} | Acc]);
           #{server_read := _} when State =:= 'closed' ->
               {error, einval};
  -        #{server_read := _} when State =:= 'closed_read' ->
  +        #{server_read := _} when (State =:= 'closed_read') orelse
  +                                 (State =:= 'closed_read_write') ->
               {error, einval};
           #{server_read := _} ->
               Value = maps:get(Tag, D),
  
positive.code:         #params{
             owner = Owner,
             owner_mon = OwnerMon},
      {ok, accept, {P, D#{buffer => <<>>}}};
  init(Arg) ->
      error_logger:error_report([{badarg, {?MODULE, init, [Arg]}}]),
      error(badarg, [Arg]).
  
negative.code:         'closed_read' ->
              {next_state, 'closed', P_D,
               [{reply, From, socket_close(P#params.socket)}]};
          'closed_read_write' ->
              {next_state, 'closed', P_D,
               [{reply, From, socket_close(P#params.socket)}]};
          'closed' ->
              {keep_state_and_data,
               [{reply, From, ok}]};
  