anchor.diff:  %%====================================================================
   %% Internal functions
   %%====================================================================
  --spec worker_restart_strategy()->{supervisor:strategy(), pos_integer(), pos_integer()}.
  -worker_restart_strategy()->
  -  {simple_one_for_one, ?MaxRestartTrial, ?MaxTimeBetweenRestartInSec}.
  +-spec worker_restart_strategy(supervisor:strategy())->{supervisor:strategy(), pos_integer(), pos_integer()}.
  +%Support only 2 restart types
  +worker_restart_strategy(RestartType) when ?is_simple(RestartType), ?is_one_for_one(RestartType)->
  +  {RestartType, ?MaxRestartTrial, ?MaxTimeBetweenRestartInSec}.
  +worker_restart_strategy(UnknownRestartType) -> throw ({unsupported_restart_type, UnknownRestartType}).
   
   tcp_socket_server_spec()->
     {the_tcp_socket_server,
  
positive.code: -define (MaxRestartTrial, 5).
  -define (MaxTimeBetweenRestartInSec, 10).
  -define (TcpTimeoutInSec, 2000).
  
  start_link() ->
    supervisor:start_link({local, ?MODULE}, ?MODULE, []).
  
negative.code: 	tcp_socket_server_spec(),
  	proxy_server_spec()
  	]),
    {ok, {worker_restart_strategy('one_for_one'), 
  	WorkerSpecSet}};
  
  init([Module]) ->
    ProxySrv = {undefined,{Module,start_link,[]},temporary,2000,worker,[]},
    {ok, {{worker_restart_strategy('simple_one_for_one'), [ProxySrv]}}.
  
  stop(_Args) ->
    ok.
  