stack.go
func (stack *Stack) Enumerate(cancel <-chan struct{}) Enumerator {
	stack.key.RLock()
	defer stack.key.RUnlock()

	return stack.underlyer.Enumerate(cancel)
}
func (stack *Stack) Enumerate(cancel <-chan struct{}) Enumerator {
	stack.key.RLock()
	defer stack.key.RUnlock()

	return stack.underlyer.Enumerate(cancel)
}
// Enumerate peeks at each element in the stack without mutating it.