anchor.diff:                          if num_comps > num_eq then
                               // we will have one inequality
                               let ineq = matching_comps.[num_eq]
  +                            // assert ineq is an array of comparisons, but there are no EQs in it.
  +                            // we will use either one or two of them in the bounds of the index scan.
  +                            // TODO should we determine those bounds now?
                               if num_eq>0 then
                                   (Some matching_eqs, Some ineq, None) |> Some
                               else
  
positive.code:                             None
                          | None ->
                              // we have an EQ for every key.  this index will work.
                              (Some matching_eqs, None, Some tq) |> Some
                      | None ->
                          // no text index.
                          let num_eq = 
                              match first_no_eqs with
                              | None -> num_scalar_keys
  
negative.code:                     | Some ndx -> (op,k,ndx,[| v |]) |> Some
                      | None -> None
          ) comps
  
      let private findFitIndexes indexes m =
          let textQuery = findTextQuery m
          let comps = findUsableCompares m
          Array.choose (fun ndx ->
              match tryFitIndexToQuery ndx comps textQuery with
              | Some fit -> (ndx, fit) |> Some
              | None -> None
          ) indexes
  
      let private chooseFromPossibles possibles =
          if Array.isEmpty possibles then 
  