anchor.diff:  %% -*- erlang -*-
   %% %%! -smp enable -sname factorial -mnesia debug verbose
   main(Args)->
  +    DecodeData = fun(Data) ->
  +      case unicode:characters_to_list(Data) of
  +        {incomplete, _, _} -> error;
  +        {error, _, _} -> error;
  +        List -> List
  +      end
  +    end,
  +
  +    Readlines = fun(Filename) ->
  +      case file:read_file(Filename) of
  +        {ok, Data} -> DecodeData(Data);
  +        {error, _} -> error
  +      end
  +    end,
  +
       GenerateBeamFilename = fun(Filename) ->
         lists:concat([Filename, ".beam"])
       end,
  
positive.code:     end,
  
      WriteDissFile = fun(BeamFilename) ->
        {ok,F}=file:open(BeamFilename++".dmp",[write]),
        io:format(F,"~p.~n",[beam_disasm:file(BeamFilename)]),
        file:close(F)
      end,
  
      Diss = fun({ok, Filename, BeamCode}) ->
          BeamFilename = GenerateBeamFilename(Filename),
          WriteBeamFile(BeamFilename, BeamCode),
          WriteDissFile(BeamFilename);
          (error) -> io:format("~p~n", ["Error"])
      end,
  
      Run = fun(Filename, Source) ->
  
negative.code:       file:write_file(Filename, [Source]),
  
        % compile erl
        Output = case compile:file(Filename, [binary, debug_info]) of
          % second arg is module name
          {ok, _, BeamCode} -> Diss({ok, Filename, BeamCode});
          error -> Diss(error)
        end,
        io:format("~p~n", [Output])
      end,
      Filename = lists:nth(1, Args),
      Source = lists:nth(2, Args),
  