anchor.diff:  
   %%%_* Internal functions =======================================================
   
  --spec init(pid(), hostname(), portnum(), brod_client_id(), [any()]) ->
  +-spec init(pid(), brod:hostname(), brod:portnum(), brod:brod_client_id(), [any()]) ->
           no_return().
   init(Parent, Host, Port, ClientId, Options) ->
     Debug = sys:debug_options(proplists:get_value(debug, Options, [])),
  
positive.code:     {error, Reason} -> {error, Reason}
    end.
  
  -spec wait_for_resp(pid(), term(), corr_id(), timeout()) ->
          {ok, term()} | {error, any()}.
  wait_for_resp(Pid, _, CorrId, Timeout) ->
    Mref = erlang:monitor(process, Pid),
  
negative.code: start_link(Parent, Host, Port, ClientId) ->
    start_link(Parent, Host, Port, ClientId, []).
  
  -spec start_link(pid(), brod:hostname(), brod:portnum(),
                   brod:brod_client_id() | binary(), term()) ->
                      {ok, pid()} | {error, any()}.
  start_link(Parent, Host, Port, ClientId, Options) when is_atom(ClientId) ->
    BinClientId = list_to_binary(atom_to_list(ClientId)),
  