code: func (g *Graveyard) ReapTxn(tx *memdb.Txn, idx uint64) error {
  	// This does a full table scan since we currently can't index on a
  	// numeric value. Since this is all in-memory and done infrequently
  	// this pretty reasonable.
  	stones, err := tx.Get("tombstones", "id")
  	if err != nil {
  		return fmt.Errorf("failed querying tombstones: %s", err)
  	}
  
  	// Find eligible tombstones.
  	var objs []interface{}
  	for stone := stones.Next(); stone != nil; stone = stones.Next() {
  		if stone.(*Tombstone).Index <= idx {
  			objs = append(objs, stone)
  		}
  	}
  
  	// Delete the tombstones in a separate loop so we don't trash the
  	// iterator.
  	for _, obj := range objs {
  		if err := tx.Delete("tombstones", obj); err != nil {
  			return fmt.Errorf("failed deleting tombstone: %s", err)
  		}
  	}
  	return nil
  }
docs: // ReapTxn cleans out all tombstones whose index values are less than or equal
  // to the given idx. This prevents unbounded storage growth of the tombstones.