anchor.diff:          use writer = new BinaryWriter(File.Open(fileName, FileMode.OpenOrCreate))
           values
           |> Seq.iter (writeValue writer)
  -    
  -    let cache = Dictionary<string, BinaryReader>()
  -    let clearCache() =
  -        for key in cache.Keys do
  -            cache.[key].Dispose()
  -        cache.Clear()
  -    let getreader fileName =
  -        if cache.ContainsKey(fileName) then cache.[fileName]
  -        else 
  -            let res = new BinaryReader(File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.Read))
  -            cache.[fileName] <- res
  -            res 
  -
               
       let readValue (reader:BinaryReader) cellIndex = 
           // set stream to correct location
  
positive.code:         SimpleReadWrite.writeValues outFileName (Seq.concat values)
  
      let queryBin indices fileName =
          SimpleReadWrite.readValues fileName indices
          //MemoryMappedRead.readValues fileName indices
      
      let testPrepareLoad fileName = 
          let sbg = Path.Combine(@"D:\temp\", Path.GetFileNameWithoutExtension(fileName) + ".sbg")
  
negative.code:     let parseRow nodata (values:string []) =
          let parsed = values |> Array.map (parseValue nodata)
          let bitmap = parsed |> Array.map Option.isSome |> BitMap.init
          (bitmap, parsed)
  
      let loadAscii fileName =
  