What exactly is the convention for writing an #inspect method?  The
core isn that consistent.  Some definitions return a string in the
actual read syntax, for example, String.  Others, that lack a read
syntax, return #<class some-relevant-data> (File::Stat),
#<class:some-relevant-data> (Dir), or #<class: some-relevant-data>
(Enumerator).  Finally, some return the same result as #to_s-, for
example, Time.

Read syntax makes sense.

The #<class convention makes sense, but why is it applied inconsistently?

What is the reasoning behind returning whatever #to_s returns?  Is it
simply obvious enough what the data the string represents that
returning something like #<Time: 2007-10-05 16:09:51 UTC> would be
silly?