anchor.diff:  
   read_script_file(File) ->
       case file:open(File, [read]) of
  -        {ok,F} ->
  +        {ok,Fd} ->
               %% Check if first a script line, if so skip it.
  -            case io:get_line(F, '') of
  -                "#!" ++ _ -> ok;
  -                _ -> file:position(F, bof)      %Reset to start of file
  -            end,
  -            Ret = case io:request(F, {get_until,unicode,'',lfe_scan,tokens,[1]}) of
  -                      {ok,Ts,Lline} -> parse_tokens(Ts, Lline, []);
  -                      {error,Error,_} -> {error,Error}
  -                  end,
  -            file:close(F),                      %Close the file
  -            Ret;
  -        {error,Error} -> {error,{none,file,Error}}
  +            case io:get_line(Fd, '') of
  +                "#!" ++ _ ->
  +                    lfe_io:read_file(Fd, 2);
  +                _ -> 
  +                    file:position(Fd, bof),    %Reset to start of file
  +                    lfe_io:read_file(Fd, 1)
  +            end
       end.
   
   %% read_script_string(FileName) -> {ok,[Sexpr]} | {error,Error}.
  
positive.code:                   get_gbinding/3,add_mbinding/3]).
  
  -import(orddict, [store/3,find/2]).
  -import(ordsets, [add_element/2]).
  -import(lists, [reverse/1,foreach/2]).
  
  -include("lfe.hrl").
  
  %% Colours for the LFE banner
  -define(RED(Str), "\e[31m" ++ Str ++ "\e[0m").
  -define(GRN(Str), "\e[1;32m" ++ Str ++ "\e[0m").
  -define(YLW(Str), "\e[1;33m" ++ Str ++ "\e[0m").
  
negative.code:     %% Forget everything back to before current slurp.
      unslurp(St);
  eval_form_1([run|Args], St0) ->
      {Value,St1} = run_file(Args, St0),
      {Value,St1};
  eval_form_1(['reset-environment'], #state{base=Be}=St) ->
      {ok,St#state{curr=Be}};
  