Rubyのnil

PythonのNoneとRubynilがどう違うのかに関連して、また気になったこと。

irb(main):001:0> def check(o); if o then p :t else p :f end; end
=> nil
irb(main):002:0> check(1)
:t
=> :t
irb(main):003:0> check(nil)
:f
=> :f
irb(main):004:0> check(nil.to_s)
:t
=> :t
irb(main):005:0> check(nil.to_i)
:t
=> :t
irb(main):006:0> check(nil.to_a)
:t
=> :t

真偽反転しちゃったけどそういうもの?