anchor.diff:  add_mask_to_flags(Flags, [Im|M], I, L) when I > Im ->
     add_mask_to_flags(Flags, M, I, [Im|L]);
   add_mask_to_flags(Flags, [_|M], _I, L) ->
  -  {lists:umerge(Flags, M), lists:reverse(L)}.
  +  {lists:umerge(M, Flags), lists:reverse(L)}.
   
   get_mask(V, {d, Masks}) ->
     case dict:find(V, Masks) of
  
positive.code:   Vars = [t_var(X) || X <- lists:seq(NL, NewLabel-1)],
    {State#state{next_label = NewLabel}, Vars}.
  
  state__store_constrs(Id, Cs, #state{cmap = {d, Dict}} = State) ->
    NewDict = dict:store(Id, Cs, Dict),
    State#state{cmap = {d, NewDict}}.
  
  state__get_cs(Var, #state{cmap = {e, ETSDict}}) ->
    ets:lookup_element(ETSDict, Var, 2);
  state__get_cs(Var, #state{cmap = {d, Dict}}) ->
    dict:fetch(Var, Dict).
  
  state__is_self_rec(Fun, #state{self_rec = SelfRec}) ->
  
negative.code: %%-----------------------------------------------------------------------------
  
  -type dep()      :: integer().  %% type variable names used as constraint ids
  -type deps()     :: ordsets:ordset(dep()).
  
  -type type_var() :: erl_types:erl_type(). %% actually: {'c','var',_,_}
  
  -record(fun_var, {'fun' :: fun((_) -> erl_types:erl_type()), deps :: deps(),
  		  origin :: integer() | 'undefined'}).
  
  -type constr_op()    :: 'eq' | 'sub'.
  