anchor.diff:                      | 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 
  
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:                         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
  