anchor.diff:        v2_solve_conj(NewFlags, Cs, 1, Map, Conj, IsFlat, V2State,
                       [], [], [U|VarsUp], Map, NewFlags)
     end;
  +v2_solve_conj(every_i, Cs, I, Map, Conj, IsFlat, V2State, UL, NewFs, VarsUp,
  +              LastMap, LastFlags) ->
  +  NewIs = case Cs of
  +            [] -> [];
  +            _ -> [I|every_i]
  +          end,
  +  v2_solve_conj(NewIs, Cs, I, Map, Conj, IsFlat, V2State, UL, NewFs, VarsUp,
  +                LastMap, LastFlags);
   v2_solve_conj(Is, [_|Tail], I, Map, Conj, IsFlat, V2State, UL, NewFs, VarsUp,
                LastMap, LastFlags) ->
     v2_solve_conj(Is, Tail, I+1, Map, Conj, IsFlat, V2State, UL, NewFs, VarsUp,
  
positive.code:   end;
  v2_solve_disj([], [], _I, _Map, V2State, UL, MapL, Eval, Uneval, Failed) ->
    {ok, V2State, lists:reverse(Eval), UL, MapL, lists:reverse(Uneval), Failed};
  v2_solve_disj(Is, [C|Cs], I, Map, V2State, UL, MapL, Eval, Uneval0, Failed) ->
    Uneval = [{I,C#constraint_list.id} ||
               not is_failed_list(C, V2State)] ++ Uneval0,
  
negative.code:   NewAcc = [[t_var_name(D) || D <- t_collect_vars(Type)]|Acc],
    find_constraint_deps(Tail, NewAcc);
  find_constraint_deps([], Acc) ->
    lists:append(Acc).
  
  mk_constraint_1(Lhs, eq, Rhs, Deps) when Lhs < Rhs ->
    #constraint{lhs = Lhs, op = eq, rhs = Rhs, deps = Deps};
  