anchor.diff:  
       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() =
  
positive.code:         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 range = getRange (pagesNeeded)
          utils.SeekPage(fsMine, header.pageSize, fst range)
          fsMine.Write(ms.GetBuffer(), 0, len)
          {firstPage=(fst range);lastPage=(snd range);innerPageSize=innerPageSize;len=len}
  
  
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)))
  