anchor.diff:      case get_fbinding(Fun, Ar, Env) of
           {yes,M,F} -> erlang:apply(M, F, eval_list(Es, Env));
           {yes,F} -> eval_apply(F, eval_list(Es, Env), Env);
  -        no -> unbound_func_error({Fun,Ar})
  +        no -> undefined_func_error({Fun,Ar})
       end;
   eval_expr([_|_]=S, _) ->                        %Test if string literal
       case is_posint_list(S) of
  
positive.code: format_error({badmatch,Val}) ->
      lfe_io:format1("bad match: ~w", [Val]);
  format_error({unbound_symb,S}) ->
      lfe_io:format1("unbound symbol: ~w", [S]);
  format_error({unbound_func,F}) ->
      lfe_io:format1("unbound function: ~w", [F]);
  format_error(if_expression) -> "non-boolean if test";
  format_error(function_clause) -> "no function clause matching";
  format_error({case_clause,Val}) ->
      lfe_io:format1("no case clause matching: ~w", [Val]);
  format_error({multi_var,V}) ->
      lfe_io:format1("multiple occurrence of variable: ~w", [V]);
  format_error(illegal_guard) -> "illegal guard";
  format_error(illegal_bitsize) -> "illegal bitsize";
  format_error(illegal_bitseg) -> "illegal bitsegment";
  format_error({illegal_pattern,Pat}) ->
      lfe_io:format1("illegal pattern: ~w", [Pat]);
  format_error({illegal_literal,Lit}) ->
      lfe_io:format1("illegal literal value: ~w", [Lit]);
  format_error({illegal_mapkey,Key}) ->
      lfe_io:format1("illegal map key: ~w", [Key]);
  format_error(bad_arity) -> "arity mismatch";
  format_error({argument_limit,Arity}) ->
      lfe_io:format1("too many arguments: ~w", [Arity]);
  format_error({bad_form,Form}) ->
      lfe_io:format1("bad form: ~w", [Form]);
  %% Everything we don't recognise or know about.
  format_error(Error) ->
      lfe_io:prettyprint1(Error).
  
negative.code: unbound_symb_error(Sym) ->
      eval_error({unbound_symb,Sym}).
  
  undefined_func_error(Func) ->
      eval_error({undefined_func,Func}).
  
  bad_form_error(Form) ->
      eval_error({bad_form,Form}).
  