code: func (merger *MatchMerger) merge(block1, block2 *BlockSpan, blockSize int64) {
  	var a, b *BlockSpan = block1, block2
  
  	if block1.StartBlock > block2.StartBlock {
  		a, b = block2, block1
  	}
  
  	if isBordering(a, b, blockSize) {
  		// bordering, merge
  		// A ------ A B ------ B > A ---------------- A
  		merger.startEndBlockMap.Delete(BlockSpanKey(a.EndBlock))
  		merger.startEndBlockMap.Delete(BlockSpanKey(b.StartBlock))
  		a.EndBlock = b.EndBlock
  
  		merger.startEndBlockMap.ReplaceOrInsert(BlockSpanStart(*a))
  		merger.startEndBlockMap.ReplaceOrInsert(BlockSpanEnd(*a))
  	}
  }
docs: // if merged, the block span remaining is the one with the lower start block