anchor.diff:  norm_fields({[{<<"$elemMatch">>, Arg}]}, Path) ->
       Cond = {[{<<"$elemMatch">>, norm_fields(Arg)}]},
       {[{Path, Cond}]};
  +
  +
  +% The text operator operates against the internal
  +% $default field. This also asserts that the $default
  +% field is at the root as well as that it only has
  +% a $text operator applied.
  +norm_fields({[{<<"$default">>, {[{<<"$text">>, _Arg}]}}]}=Sel, <<>>) ->
  +    Sel;
  +norm_fields({[{<<"$default">>, _}]} = Selector, _) ->
  +    ?MANGO_ERROR({bad_field, Selector});
  +
   
   % Any other operator is a terminal below which no
   % field names should exist. Set the path to this
  
positive.code: norm_ops({[{<<"$size">>, Arg}]}) ->
      ?MANGO_ERROR({bad_arg, '$size', Arg});
  
  % Terminals where we can't perform any validation
  % on the value because any value is acceptable.
  norm_ops({[{<<"$lt">>, _}]} = Cond) ->
  
negative.code: match({[{<<"$size">>, _}]}, _Value, _Cmp) ->
      false;
  
  % We don't have any choice but to believe that the text
  % index returned valid matches
  match({[{<<"$default">>, _}]}, _Value, _Cmp) ->
      true;
  
  % All other operators are internal assertion errors for
  % matching because we either should've removed them during
  % normalization or something else broke.
  