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,
  +v2_solve_conj([every_i], Cs, I, Map, Conj, IsFlat, V2State, UL, NewFs, VarsUp,
                 LastMap, LastFlags) ->
     NewIs = case Cs of
               [] -> [];
  -            _ -> [I|every_i]
  +            _ -> [I, every_i]
             end,
     v2_solve_conj(NewIs, Cs, I, Map, Conj, IsFlat, V2State, UL, NewFs, VarsUp,
                   LastMap, LastFlags);
  
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(every_i, Cs, I, Map, V2State, UL, MapL, Eval, Uneval, Failed) ->
    NewIs = case Cs of
              [] -> [];
              _ -> [I|every_i]
            end,
    v2_solve_disj(NewIs, Cs, I, Map, V2State, UL, MapL, Eval, Uneval, Failed);
  v2_solve_disj(Is, [C|Cs], I, Map, V2State, UL, MapL, Eval, Uneval0, Failed) ->
  
negative.code: var_occurs_everywhere(V, Masks, NotFailed) ->
    ordsets:is_subset(NotFailed, get_mask(V, Masks)).
  
  v2_solve_disj([I|Is], [C|Cs], I, Map0, V2State0, UL, MapL, Eval, Uneval,
                Failed0) ->
    Id = C#constraint_list.id,
  