code: func (it *Iterator) Delete() error {
  	if !atomic.CompareAndSwapUint64(&it.nd.value, it.value, deletedVal) {
  		if it.setNode(it.nd, false) {
  			return ErrRecordUpdated
  		}
  
  		return nil
  	}
  
  	// Deletion succeeded, so position iterator on next non-deleted node.
  	next := it.list.getNext(it.nd, 0)
  	it.setNode(next, false)
  	return nil
  }
docs: // Delete marks the current iterator record as deleted from the store if it
  // has not been updated since iterating or seeking to it. If the record has
  // been updated, then Delete positions the iterator on the most current value
  // and returns ErrRecordUpdated. If the record is deleted, then Delete positions
  // the iterator on the next record.