anchor.diff:  
   io_read(Number) ->
     case file:read(group_leader(), Number) of
  -    {ok, Data}      -> Data;
  -    eof             -> exit(normal);
  -    {error, Reason} -> exit(file:format_error(Reason))
  +    {ok, Data} when is_list(Data)   -> list_to_binary(Data);
  +    {ok, Data} when is_binary(Data) -> Data;
  +    eof                             -> exit(normal);
  +    {error, Reason}                 -> exit(file:format_error(Reason))
     end.
   
   format_log(Format) -> format_log(Format, []).
  
positive.code:   rx(Socket).
  
  read_prefix() ->
    LP = case io_read(12) of
      P when is_binary(P) -> binary_to_list(P);
      P when is_list(P)   -> P
    end,
    Req = substr(LP, 1, 4),
    N = list_to_integer(substr(LP, 5), 16),
    io:format(standard_error, "Req: ~s, Len: ~w, prefix: ~s -> ", [Req, N, LP]),
    {Req, N, LP}.
  
  transfar_request(3, Sender, R = {Req, Len, Orig}) ->
    ok = if
      Req =:= "NFIL" ->
        Sender(Orig),
        format_log("done");
      Req =:= "CDIR"; Req =:= "NAME";
      Req =:= "FILE"; Req =:= "LINK" ->
        Data = io_read(Len),
        Sender(list_to_binary([Orig, Data])),
        format_log("done");
  
negative.code: -export([main/1]).
  -import(string, [to_integer/1, substr/2, substr/3]).
  
  io_write(Data) when is_list(Data) ->
    io_write(list_to_binary(Data));
  io_write(Data) when is_binary(Data) ->
    case file:write(group_leader(), Data) of
      ok              -> ok;
      {error, Reason} -> exit(file:format_error(Reason))
  