>> saying 'is closely associated with class IO'. Now, I would look at IO
>> if File extended it, but that is not the case. What's the bond between
>> File and IO?
>
> File inherits from IO:
>
> irb(main):004:0> File.ancestors
> => [File, IO, File::Constants, Enumerable, Object, Kernel]

File does "extend" IO:

irb(main):001:0> File.superclass
=> IO