anchor.diff:                  // last byte of mantissa is 2*x
                   // previous bytes are 2*x+1
   
  -                printfn "mantissa: %A" a
  -                printfn "e: %d" e
  +                //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.
  
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:                         else has
                  ) terms
  
              let pos_entries = 
                  Array.collect (fun (term,entries) ->
                      let neg = 
                          match term with
                          | plan.Word (neg,_) -> neg
  