package ds type Queue[T any] interface { Addable[T] Sized Enqueue(value T) Dequeue() T Peek() T PeekAt(index int) T }