removeFirst は実質的にほしいのは popFirst であるケースが多くてremoveFirst や removeLast はいらない。removeLast が popLast で Optional に包むオーバーヘッドを避けるためにあるというのはまだわからんでもないけど、 removeFirst は意味不明。removeFirst は O(n) のはずだし、それと比べたら Optional に包むオーバーヘッドなんて微々たるものだからほしいのは popFirst だ。Array をキューとして使い出す人が出て来るからpopFirst を封じてるんだったらまだわかる。removeFirst もいらないと思う。ArraySlice なら O(1) だから、 ArraySlice に popFirst があれば良い?