Object#nil? は、なぜ定義されているのでしょうか。
ふうつに obj == nil とすればいいだけだと思うのですが、わざわざ Object#nil? というメソッドを用意している理由が知りたいです。

あと、Array#firstも謎です。arr[0]でいいと思うんですが、これも存在理由が知りたいです。