anchor.diff:          let innerPageSize = 512
           let ms = buildSegmentInfoList innerPageSize sd
           let len = ms.Length |> int
  -        let pagesNeeded = len / header.pageSize + if 0 <> len % header.pageSize then 1 else 0
  +        let pagesNeeded = len / pageSize + if 0 <> len % pageSize then 1 else 0
           let range = getRange (pagesNeeded)
  -        utils.SeekPage(fsMine, header.pageSize, fst range)
  +        utils.SeekPage(fsMine, pageSize, fst range)
           fsMine.Write(ms.GetBuffer(), 0, len)
           {firstPage=(fst range);lastPage=(snd range);innerPageSize=innerPageSize;len=len}
   
  
positive.code: 
      let WASTE_PAGES_AFTER_EACH_BLOCK = 3 // TODO remove.  testing only.
      let PAGES_PER_BLOCK = 10 // TODO not hard-coded
  
      let writeHeader hdr =
          let pb = new PageBuilder(HEADER_SIZE_IN_BYTES)
          pb.PutInt32(hdr.pageSize)
  
          pb.PutInt32(hdr.sill.firstPage)
          pb.PutInt32(hdr.sill.lastPage)
          pb.PutInt32(hdr.sill.innerPageSize)
          pb.PutInt32(hdr.sill.len)
  
          pb.PutVarint(List.length hdr.currentState |> int64)
          List.iter (fun x -> 
              let g:Guid = fst x
              pb.PutArray(g.ToByteArray())
              pb.PutInt32(snd x)
              ) hdr.currentState
  
          fsMine.Seek(0L, SeekOrigin.Begin) |> ignore
          pb.Write(fsMine)
  
      let readHeader() =
          let read() =
  
negative.code:             let hd = 
                  {
                      currentState=state 
                      segments=segments 
                      sill = sill
                  }
  
              (hd, pageSize)
  
          let calcNextPage pageSize (len:int64) =
              let numPagesSoFar = if (int64 pageSize) > len then 1 else (int (len / (int64 pageSize)))
  