anchor.diff:  
   eval_form(Form, Shell, St0) ->
       try
  -	Ce1 = add_vbinding('-', Form, St0#state.curr),
  -	%% Macro expand and evaluate it.
  -	{Value,St1} = eval_form(Form, St0#state{curr=Ce1}),
  -	%% Print the result, but only to depth 30.
  -	VS = lfe_io:prettyprint1(Value, 30),
  -	io:requests([{put_chars,VS},nl]),
  -	%% Update bindings.
  -	Ce2 = update_shell_vars(Form, Value, St1#state.curr),
  -	St2 = St1#state{curr=Ce2},
  -	%% Return value and updated state.
  -	Shell ! {eval_value,self(),Value,St2},
  -	St2
  +        Ce1 = add_vbinding('-', Form, St0#state.curr),
  +        %% Macro expand and evaluate it.
  +        {Value,St1} = eval_form(Form, St0#state{curr=Ce1}),
  +        %% Print the result, but only to depth 30.
  +        VS = lfe_io:prettyprint1(Value, 30),
  +        io:requests([{put_chars,VS},nl]),
  +        %% Update bindings.
  +        Ce2 = update_shell_vars(Form, Value, St1#state.curr),
  +        St2 = St1#state{curr=Ce2},
  +        %% Return value and updated state.
  +        Shell ! {eval_value,self(),Value,St2},
  +        St2
       catch
  -	exit:normal -> exit(normal);
  -	Class:Reason ->
  -	    Stk = erlang:get_stacktrace(),
  -	    %% We don't want the ERROR REPORT generated by the
  -	    %% emulator. Note: exit(kill) needs nothing special.
  -	    %% {links,Ps} = process_info(self(), links),
  -	    %% E = nocatch(Class, {Reason,Stk}),
  -	    %% foreach(fun (P) -> exit(P, E) end, Ps -- [Shell]),
  -	    %% Shell ! {eval_exit,self(),Class,{Reason,Stk}},
  -	    %% exit(normal)
  -	    E = nocatch(Class, {Reason,Stk}),
  -	    exit(E)
  +        exit:normal -> exit(normal);
  +        Class:Reason ->
  +            Stk = erlang:get_stacktrace(),
  +            %% We don't want the ERROR REPORT generated by the
  +            %% emulator. Note: exit(kill) needs nothing special.
  +            Shell ! {eval_error,self(),Class},
  +            E = nocatch(Class, {Reason,Stk}),
  +            exit(E)
       end.
   
   nocatch(throw, {Term,Stack}) ->
  
positive.code:         false -> "> "
      end.
  
  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,
      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),
  
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.
  