anchor.diff:              addFreeBlocks blocksToBeFreed'
           else
               addFreeBlocks blocksToBeFreed
  -        // note that we intentionally do not release the lock here.
  +        // note that we intentionally do not release the writeLock here.
           // you can change the segment list more than once while holding
  -        // the lock.  the lock gets released when you Dispose() it.
  -
  -    // only call this if you have the write lock
  +        // the writeLock.  the writeLock gets released when you Dispose() it.
  +
  +    // only call this if you have the writeLock
       let commitSegments (newGuids:seq<Guid>) fnHook =
           // TODO we could check to see if this guid is already in the list.
   
  
positive.code:             )
          csr
  
      let checkForCursorOnGoneSegment g seg = // TODO dislike function name
          // TODO worry about whether there is a race here.  is it possible
          // for something to be in the process of opening a cursor on this
          // segment?
  
negative.code: type private HeaderData =
      {
          // TODO currentState is an ordered copy of segments.Keys.  eliminate duplication?
          // or add assertions and tests to make sure they never get out of sync?
          currentState: Guid list
          sill: SegmentInfoListLocation
          segments: Map<Guid,SegmentInfo>
  