anchor.diff:  	Error ->
   	    Error
       end;
  -open(Fd, _Addr, _Port, Opts, Protocol, Family, Type, Module) ->
  +open(Fd, _Addr, _Port, Opts, Protocol, Family, Type, Module)
  +  when is_integer(Fd) ->
       fdopen(Fd, Opts, Protocol, Family, Type, Module).
   
   bindx(S, [Addr], Port0) ->
  
positive.code: 	{tcp_module,_}  -> con_opt(Opts, R, As);
  	inet        -> con_opt(Opts, R, As);
  	inet6       -> con_opt(Opts, R, As);
  	{Name,Val} when is_atom(Name) -> con_add(Name, Val, R, Opts, As);
  	_ -> {error, badarg}
      end;
  
negative.code: 	   Module :: atom()) ->
  	{'ok', socket()} | {'error', posix()}.
  
  open(FdO, Addr, Port, Opts, Protocol, Family, Type, Module)
    when is_integer(FdO), FdO < 0;
         is_list(FdO) ->
      OpenOpts =
  	if  is_list(FdO) -> FdO;
  	    true -> []
  	end,
      case prim_inet:open(Protocol, Family, Type, OpenOpts) of
  	{ok,S} ->
  	    case prim_inet:setopts(S, Opts) of
  		ok ->
  