I'm afraid Eric Jacoboni wishes Ruby intrpreter perform strong type
checking.
Every strong-typed language implies a lot of text being not a code, but
declarations. Ruby should provide a short-time development and therefore
no type-checking.

Generally, classes are equal when they provide equal interfaces. Class B
is a subclass of A when it provides all the methods of A and some
methods in addition. "<" in Ruby is a shorthand allowing programmer to
shorten the code. For instance, ADA provides much less elegant form :).

Of course "<" means a little more than simple copying of methods. The
link "class-subclass" lives "forever". Changing class A will change  all
of its subclasses.

Aleksei Guzev