Check if currently empty.
Peek the first element. Retries if empty.
Enqueue a value.
Dequeue the first element. Retries if currently empty.
Attempt to peek the first element. Returns None if empty, Some(head) otherwise.
None
Some(head)
Attempt to dequeue the first element. Returns None if empty, Some(head) otherwise.