anchor.diff:  force_novars(Ce, St) ->
       force_safe(Ce, St).
   
  +
  +%% safe_pattern_expr(Expr, State) -> {Cexpr,[PreExpr],State}.
  +%%   only literals and variables are safe expressions in patterns
  +safe_pattern_expr(E,St0) ->
  +    case safe(E,St0) of
  +	{#c_var{},_,_}=Safe -> Safe;
  +	{#c_literal{},_,_}=Safe -> Safe;
  +	{Ce,Eps,St1} ->
  +	    {V,St2} = new_var(St1),
  +	    {V,Eps++[#iset{var=V,arg=Ce}],St2}
  +    end.
  +
   %% safe(Expr, State) -> {Safe,[PreExpr],State}.
   %%  Generate an internal safe expression.  These are simples without
   %%  binaries which can fail.  At this level we do not need to do a
  
positive.code:     %% 'try ... of ... catch ... end'
      {Es1,St1} = exprs(Es0, St0),
      {V,St2} = new_var(St1),		%This name should be arbitrary
      {Cs1,St3} = clauses(Cs0, St2),
      {Fpat,St4} = new_var(St3),
      Lanno = lineno_anno(L, St4),
      Fc = fail_clause([Fpat], Lanno,
  
negative.code: 
  list_gen_pattern(P0, Line, St) ->
      try
  	pattern(P0,St)
      catch 
  	nomatch -> {nomatch,[],add_warning(Line, nomatch, St)}
      end.
  
  %%%
  