anchor.diff:  %% Basically illegal syntax which maybe generated by internal tools.
   from_pat({call,_,{atom,_,F},As}, Vt0, St0) ->
       %% This will never occur in real code but for macro expansions.
  -    {Las,Eqt,Vt1,St1} = from_pat_list(As, Vt0, St0),
  +    {Las,Eqt,Vt1,St1} = from_pats(As, Vt0, St0),
       {[F|Las],Eqt,Vt1,St1}.
   
  -from_pat_list([P|Ps], Vt0, St0) ->
  +from_pats([P|Ps], Vt0, St0) ->
       {Lp,Eqt,Vt1,St1} = from_pat(P, Vt0, St0),
  -    {Lps,Eqts,Vt2,St2} = from_pat_list(Ps, Vt1, St1),
  +    {Lps,Eqts,Vt2,St2} = from_pats(Ps, Vt1, St1),
       {[Lp|Lps],Eqt++Eqts,Vt2,St2};
  -from_pat_list([], Vt, St) -> {[],[],Vt,St}.
  +from_pats([], Vt, St) -> {[],[],Vt,St}.
   
   from_pat_map_assocs([{map_field_exact,_,Key,Val}|As], Vt0, St0) ->
       {Lk,Eqt1,Vt1,St1} = from_pat(Key, Vt0, St0),
  
positive.code:     %% Translate to call to erlang:make_fun/3.
      {Las,Vt1,St1} = from_expr_list([M,F,A], Vt0, St0),
      {[call,?Q(erlang),?Q(make_fun)|Las],Vt1,St1};
  %% Core control special forms.
  from_expr({block,_,Es}, Vt0, St0) ->
      {Les,Vt1,St1} = from_body(Es, Vt0, St0),
      {[progn|Les],Vt1,St1};
  from_expr({'case',_,E,Cls}, Vt0, St0) ->
      {Le,Vt1,St1} = from_expr(E, Vt0, St0),
      {Lcls,Vt2,St2} = from_icrt_cls(Cls, Vt1, St1),
      {['case',Le|Lcls],Vt2,St2};
  from_expr({'if',_,Cls}, Vt0, St0) ->
      {Lcls,Vt1,St1} = from_icrt_cls(Cls, Vt0, St0),
      {['case',[]|Lcls],Vt1,St1};
  from_expr({'receive',_,Cls}, Vt0, St0) ->
      {Lcls,Vt1,St1} = from_icrt_cls(Cls, Vt0, St0),
      {['receive'|Lcls],Vt1,St1};
  
negative.code:     {Ee,St2} = to_expr(E, L, Vt1, St1),
      {Eqs,Vt2,St3} = to_lc_quals(Qs, L, Vt1, St2),
      {[{generate,L,Ep,Ee}|Eqs],Vt2,St3};
  to_lc_quals([['<-',P,['when'],E]|Qs], L, Vt, St) ->
      to_lc_quals([['<-',P,E]|Qs], L, Vt, St);         %Skip empty guard
  to_lc_quals([['<-',P,['when'|G],E]|Qs], L, Vt, St) ->
      to_lc_quals([['<-',P,E]|G ++ Qs], L, Vt, St);    %Move guards to tests
  to_lc_quals([T|Qs], L, Vt0, St0) ->
  