anchor.diff:  %% transport options.
   -spec open(Host :: string(), Port :: integer(), Type :: connection_type(),
              Opts :: open_opts()) ->
  -    {ok, pid()} | {error, gun_open_failed, gun_open_timeout}.
  +    {ok, pid()} | {ok, pid(), term()} |
  +    {error, already_present | {already_started, pid()} |
  +            gun_open_failed | gun_open_timeout}.
   open(Host, Port, Type, Opts) ->
  -    supervisor:start_child(shotgun_sup, [Host, Port, Type, Opts]).
  +    supervisor:start_child(shotgun_sup, [{Host, Port, Type, Opts}]).
   
   %% @doc Closes the connection with the host.
   -spec close(pid()) -> ok.
  
positive.code: %% gen_fsm callbacks
  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  
  -type state() :: #{}.
  
  %% @private
  -spec init([term()]) ->
      {ok, at_rest, state()} | {stop, gun_open_timeout} | {stop, gun_open_failed}.
  init([Host, Port, Type, Opts]) ->
      GunType = case Type of
                    http -> tcp;
                    https -> ssl
  
negative.code: 
  %% @private
  %% @doc Chunked data response
  -spec receive_chunk(term(), state()) -> term().
  receive_chunk({'DOWN', _, _, _, _Reason}, _State) ->
      error(incomplete);
  receive_chunk({gun_data, _Pid, StreamRef, IsFin, Data}, State) ->
  