Ruby's object model has been becoming more strict as of late, preventing some imaginative
(albeit ultimately useless?) tricks like the following prototypish OOP:
That's more powerful than a mere Class.new(singleton_class.dup) because
changes in the singleton class affect descendents, as happens with normal
inheritance (for both classes and modules).