public static BlockMap WithSuccessor(this BlockMap map, int offset, int count)
 {
     map.AssignBytes(offset + count + 1, count);
     return map;
 }
 public static BlockMap WithImmediatePredecessor(this BlockMap map, int offset, int count)
 {
     map.AssignBytes(offset - count, count);
     return map;
 }
 public static BlockMap WithIntersectingPredecessor(this BlockMap map, int offset, int count)
 {
     map.AssignBytes(offset - count + 1, count);
     return map;
 }
 public static BlockMap WithBlock(this BlockMap map, int offset, int count)
 {
     map.AssignBytes(offset, count);
     return map;
 }