anchor.diff:  	{ok, Address} = application:get_env(radius, address),
   	start(Module, Port, Address).
   
  --spec start(Module :: atom(), Port :: non_neg_integer(),
  -		Address :: inet:ip_address()) ->
  -	{ok, Pid :: pid()}
  -		| {error, Reason :: already_present
  -		| {already_started, Pid :: pid()} | term()}.
  +-spec start(Module, Port, Address) ->
  +		{ok, Pid} | {error, Reason}
  +	when
  +		Module :: atom(),
  +		Port :: non_neg_integer(),
  +		Address :: inet:ip_address(),
  +		Pid :: pid(),
  +		Reason :: already_present | {already_started, Pid} | term().
   %% @doc Start a RADIUS protocol server using the callback module
   %% 	`Module' listening on `Port' with address `Address'.
   %%
  
positive.code: 	<<Code, Identifier, Length:16,
  			Authenticator/binary, Attributes/binary>>.
  
  -spec authenticator() -> Authenticator :: binary().
  %% @doc Return a 16 octet random number to use as a request Authenticator.
  %% @private
  authenticator() ->
  	crypto:rand_bytes(16).
  
  -spec response(RadiusFsm :: pid(),
  		Response :: {response, binary()} | {error, ignore}) -> ok.
  %% @doc Send a delayed response to a {@link //radius/radius_fsm. radius_fsm}.
  response(RadiusFsm, {response, Response})
  		when is_pid(RadiusFsm), is_binary(Response) ->
  
negative.code: 			{error, Reason}
  	end.
  
  -spec stop(Pid) ->
  		ok
  	when
  		Pid :: pid().
  %% @doc Stop a running RADIUS protocol server.
  %%
  stop(Pid) ->
  	supervisor:terminate_child(whereis(radius), Pid).
  
  -spec codec(In) -> Out
  	when
  		In :: binary() | #radius{},
  		Out :: #radius{} | binary().
  %% @doc Encode or decode a binary RADIUS protocol packet.
  %%
  codec(<<Code, Identifier, Length:16, Authenticator:16/binary,
  