anchor.diff:                              v * 100
                           ) v { 1 .. need }
   
  -                printfn "weight: %d" v
  +                //printfn "weight: %d" v
                   v
  -
   
               let lookup word =
                   // TODO if we just search for the word without the weight, we could
  
positive.code:                         // TODO probably should not negate a doc just because it contains one of the words in a negated phrase
  
                      if neg then
                          Array.map (fun (k,did) -> did) entries
                      else
                          Array.empty
                  )
                  |> Set.ofArray
  
              let docs = Set.difference docids neg_docids
  
              let sql = sprintf "SELECT bson FROM \"%s\" WHERE did=?" tblColl
              let stmt = conn.prepare(sql)
              let count = ref 0
              let s = 
                  seq {
                      for did in docids do
                          stmt.clear_bindings()
                          stmt.bind_int64(1, did)
                          stmt.step_row()
  
negative.code:                 // last byte of mantissa is 2*x
                  // previous bytes are 2*x+1
  
                  //printfn "mantissa: %A" a
                  //printfn "e: %d" e
  
                  // we have an array of centimal digits here, all of
                  // which appear to the right of the decimal point.
  