anchor.diff:  
   scan(<<C/utf8, Rest/bytes>>) ->
       case C of
  -        $( -> [{'(', 1} | scan(Rest)];
  -        $) -> [{')', 1} | scan(Rest)];
  -        $& -> [{'&', 1} | scan(Rest)];
  -        $| -> [{'|', 1} | scan(Rest)];
  -        $! -> [{'!', 1} | scan(Rest)];
  +        $( -> [{'(', 1}|scan(Rest)];
  +        $) -> [{')', 1}|scan(Rest)];
  +        $& -> [{'&', 1}|scan(Rest)];
  +        $| -> [{'|', 1}|scan(Rest)];
  +        $! -> [{'!', 1}|scan(Rest)];
           32 -> scan(Rest); % skip spaces
           _  ->
               Regex = [<<"^([^()&|! ]*)(.*)$">>],
  
positive.code: tree_to_query({not_q, SubTree}, Lang) ->
      #not_q{sub = tree_to_query(SubTree, Lang)};
  tree_to_query({term_q, {string, Keyword, _}}, Lang) ->
      [Term | _] = dk_pp:terms(Keyword, Lang),
      #term_q{term = Term}.
  
  mv_not_in(#and_q{subs = Qs}) ->
  
negative.code: 
  product([], Acc) ->
      Acc;
  product([L|Rest], Acc) ->
      product(Rest, [[H|T] || H <- L, T <- Acc]).
  
  %%----------------------------------------------------------------------------
  %% PropErties
  