anchor.diff:                  counter := !counter + NaiveSearch.countMatches result maxTemplateLength countingBound matchBound templateLengths prefix
                   countingTimer.Lap(label)
   
  -            current <- current + (int64) read
  -
  -            countingBound <- read
  -            matchBound <- read
  -            if current < bound then
  -                countingBound <- countingBound - 512
  -
  -            task <- uploader()
  +            if (read > 0) then
  +                current <- current + (int64) read
  +
  +                countingBound <- read
  +                matchBound <- read
  +                if current < bound then
  +                    countingBound <- countingBound - 512
  +
  +                task <- uploader()
           
  -        let result = downloader task
  -        countingTimer.Start()
  -        counter := !counter + NaiveSearch.countMatches result maxTemplateLength countingBound matchBound templateLengths prefix
  -        countingTimer.Lap(label)
  +        if (read > 0) then
  +            printfn "Last read is non-zero!"
  +            let result = downloader task
  +            countingTimer.Start()
  +            counter := !counter + NaiveSearch.countMatches result maxTemplateLength countingBound matchBound templateLengths prefix
  +            countingTimer.Lap(label)
   
           ignore(Raw.CloseHandle(handle))
           readingTimer.Lap(label)
  
positive.code: 
          let mutable task = null
  
          while current < bound do
              if current > 0L then
                  current <- current - 512L
  
  
negative.code: 
          let handle = Raw.CreateFile(index)
  
          let bound = 20L*1024L*1024L*1024L
  
          let prefix, next, leaf, _ = NaiveSearch.buildSyntaxTree templates maxTemplateLength templateLengths templateArr
  
  