anchor.diff:      end.
   
   to_expr_var(V, L, Vt, St) ->
  -    Var = case find(V, Vt) of
  +    Var = case orddict:find(V, Vt) of
   	      {ok,V1} -> V1;
   	      error -> V
   	  end,
  
positive.code: from_cls(Fun, Vt0, St0, [C|Cs]) ->
      {Lc,Vtc,St1} = Fun(C, Vt0, St0),
      {Lcs,Vtcs,St2} = from_cls(Fun, Vt0, St1, Cs),
      {[Lc|Lcs],intersection(Vtc, Vtcs),St2}.
  
  from_eq_tests(Gs) -> [ ['=:=',V,V1] || {V,V1} <- Gs ].
  
  
negative.code: from_pat({match,_,P1,P2}, Vt0, St0) ->		%Aliases
      {Lp1,Eqt1,Vt1,St1} = from_pat(P1, Vt0, St0),
      {Lp2,Eqt2,Vt2,St2} = from_pat(P2, Vt1, St1),
      {['=',Lp1,Lp2],Eqt1++Eqt2,Vt2,St2};
  %% 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),
      {[F|Las],Eqt,Vt1,St1}.
  
  from_pat_list([P|Ps], Vt0, St0) ->
      {Lp,Eqt,Vt1,St1} = from_pat(P, Vt0, St0),
  