anchor.diff:          false -> "> "
       end.
   
  -report_exception(Class, {Reason,Stk}) ->
  +report_exception(Class, Reason, Stk) ->
       %% Use LFE's simplified version of erlang shell's error
       %% reporting but which LFE prettyprints data.
  -    Sf = fun ({M,_F,_A}) ->			%Pre R15
  -		 %% Don't want to see these in stacktrace.
  -		 (M == lfe_eval) or (M == ?MODULE);
  -	     ({M,_F,_A,_L}) ->			%R15 and later
  -		 %% Don't want to see these in stacktrace.
  -		 (M == lfe_eval) or (M == ?MODULE)
  -	 end,
  +    Sf = fun ({M,_F,_A}) ->                     %Pre R15
  +                 %% Don't want to see these in stacktrace.
  +                 (M == lfe_eval) or (M == ?MODULE);
  +             ({M,_F,_A,_L}) ->                  %R15 and later
  +                 %% Don't want to see these in stacktrace.
  +                 (M == lfe_eval) or (M == ?MODULE)
  +         end,
       Ff = fun (T, I) -> lfe_io:prettyprint1(T, 15, I, 80) end,
       Cs = lfe_lib:format_exception(Class, Reason, Stk, Sf, Ff, 1),
       io:put_chars(Cs),
  
positive.code: 
  read_expression(Prompt, Eval, St) ->
      Read = fun () ->
  		   %% Ret = lfe_io:read(Prompt),
  		   io:put_chars(Prompt),
  		   Ret = lfe_io:read(),
  		   exit(Ret)
  	   end,
      Rdr = spawn_link(Read),
      read_expression_1(Rdr, Eval, St).
  
  read_expression_1(Rdr, Eval, St) ->
      receive
  	{'EXIT',Rdr,Ret} ->
  	    {Ret,Eval};
  	{'EXIT',Eval,{Reason,Stk}} ->
  	    report_exception(error, {Reason,Stk}),
  	    read_expression_1(Rdr, start_eval(St), St);
  	{'EXIT',Eval,Reason} ->
  	    report_exception(error, {Reason,[]}),
  	    read_expression_1(Rdr, start_eval(St), St)
      end.
  
  %% new_state(ScriptName, Args [,Env]) -> State.
  
negative.code: 
  start_eval(St) ->
      Self = self(),
      spawn_link(fun () -> eval_init(Self, St) end).
  
  eval_init(Shell, St) ->
      eval_loop(Shell, St).
  
  eval_loop(Shell, St0) ->
      receive
          {eval_expr,Shell,Form} ->
              St1 = eval_form(Form, Shell, St0),
              eval_loop(Shell, St1)
      end.
  
  %% eval_form(Form, ShellPid, State) -> State.
  