anchor.diff:      lfe_io:format1("multiple variable: ~w", [S]);
   format_error({redef_fun,F}) ->
       lfe_io:format1("redefining function: ~w", [F]);
  +format_error(illegal_literal) -> "illegal literal";
   format_error(illegal_pattern) -> "illegal pattern";
   format_error(illegal_guard) -> "illegal guard";
   format_error(illegal_bitseg) -> "illegal bit segment";
  
positive.code: check_let_vb(Vb, Env, L, St0) ->
      %% Get the environments right here!
      case pattern_guard(Vb, Env, L, St0) of
      {[Val],Pvs,_,St1} ->            %One value expression only
          {Pvs,check_expr(Val, Env, L, St1)};
      {_,_,_,St1} -> {[],bad_form_error(L, 'let', St1)}
      end.
  
  %% check_let_function(FletBody, Env, Line, State) -> {Env,State}.
  
negative.code: check_gif([Test,True], Env, L, St) ->
      check_gexprs([Test,True], Env, L, St);
  check_gif(_, _, L, St) ->
      bad_gform_error(L, 'if', St).               %Signal as guard error.
  
  %% gexpr_bitsegs(BitSegs, Env, Line, State) -> State.
  
  gexpr_bitsegs(Segs, Env, L, St0) ->
      check_foreach(fun (S, St) -> bitseg(S, Env, L, St, fun check_gexpr/4) end,
                    fun (St) -> bad_gform_error(L, binary, St) end, St0, Segs).
  
  %% gexpr_map(Pairs, Env, Line, State) -> State.
  %% gexpr_set_map(Map, Pairs, Env, Line, State) -> State.
  %% gexpr_update_map(Map, Pairs, Env, Line, State) -> State.
  %%  Functions for checking maps, these always return errors if system
  %%  does not support maps.
  
  -ifdef(HAS_MAPS).
  gexpr_map(Pairs, Env, L, St) ->
  