anchor.diff:  %%  lfe_io:read_string except parse all forms.
   
   read_script_string(String) ->
  -    case lfe_scan:string(String, 1) of
  -        {ok,Ts,Lline} -> parse_tokens(Ts, Lline, []);
  -        {error,E,_} -> {error,E}
  -    end.
  -
  -parse_tokens([_|_]=Ts0, Lline, Ss) ->
  -    case lfe_parse:sexpr(Ts0) of
  -        {ok,_,S,Ts1} -> parse_tokens(Ts1, Lline, [S|Ss]);
  -        {more,Pc1} ->
  -            %% Need more tokens but there are none, so call again to
  -            %% generate an error message.
  -            {error,E,_} = lfe_parse:sexpr(Pc1, {eof,Lline}),
  -            {error,E};
  -        {error,E,_} -> {error,E}
  -    end;
  -parse_tokens([], _, Ss) -> {ok,reverse(Ss)}.
  +    lfe_io:read_string(String).
  +
  +%% run_loop(Forms, State) -> {Value,State}.
  +%% run_loop(Forms PrevValue, State) -> {Value,State}.
  +
  +run_loop(Fs, St) -> run_loop(Fs, [], St).
   
   run_loop([F|Fs], _, St0) ->
       Ce1 = add_vbinding('-', F, St0#state.curr),
  
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:     Base1 = add_shell_macros(Base0),
      Base2 = add_shell_vars(Base1),
      #state{curr=Base2,save=Base2,base=Base2,slurp=false}.
  
  upd_state(Script, Args, #state{curr=Curr,save=Save,base=Base}=St) ->
      %% Update an environment with with script name and args.
      Upd = fun (E0) ->
                    E1 = add_vbinding('script-name', Script, E0),
                    add_vbinding('script-args', Args, E1)
            end,
      St#state{curr=Upd(Curr),save=Upd(Save),base=Upd(Base)}.
  
  add_shell_vars(Env0) ->
      %% Add default shell expression variables.
  