anchor.diff:  from_pat({var,_,'_'}, Vt, St) -> {'_',[],Vt,St};    %Special case _
   from_pat({var,_,V}, Vt, St0) ->                     %Unquoted atom
       case ordsets:is_element(V, Vt) of               %Is variable bound?
  -    true ->
  -        {V1,St1} = new_from_var(St0),               %New var for pattern
  -        {V1,[{V,V1}],Vt,St1};                       %Add to guard tests
  -    false ->
  -        {V,[],ordsets:add_element(V, Vt),St0}
  +        true ->
  +            {V1,St1} = new_from_var(St0),       %New var for pattern
  +            {V1,[{V,V1}],Vt,St1};               %Add to guard tests
  +        false ->
  +            {V,[],ordsets:add_element(V, Vt),St0}
       end;
   from_pat({nil,_}, Vt, St) -> {[],[],Vt,St};
   from_pat({integer,_,I}, Vt, St) -> {I,[],Vt,St};
  
positive.code:     {{call,L,{atom,L,tl},[Ee]},St1};
  to_expr([list|Es], L, Vt, St) ->
      Fun = fun (E, {Tail,St0}) ->
            {Ee,St1} = to_expr(E, L, Vt, St0),
            {{cons,L,Ee,Tail},St1}
        end,
      foldr(Fun, {{nil,L},St}, Es);
  to_expr(['list*'|Es], L, Vt, St) ->        %Macro
      to_expr_list_s(fun to_expr/4, L, Vt, St, Es);
  
negative.code:     {Cls1,A} = splitwith(fun (['after'|_]) -> false; (_) -> true end, Cls0),
      {Ecls,St1} = to_icrt_cls(Cls1, L, Vt, St0),
      case A of
          [['after',T|B]] ->
              {Et,St2} = to_expr(T, L, Vt, St1),
              {Eb,St3} = to_body(B, L, Vt, St2),
              {{'receive',L,Ecls,Et,Eb},St3};
          [] ->
              {{'receive',L,Ecls},St1}
      end;
  %% Special known macros.
  %% No record stuff here as they are macros which have been expanded.
  