OK, it's a corny name, but I'm open to suggestions... A SuperHash is a hash-like object which can inherit key-value pairs from parent hashes. It can also have its own key-value pairs, which override inherited pairs. From the documentation: The Ruby inheritance system is a powerful way to organize methods and constants in a hierarchy of classes and modules. However, it does not provide an easy way to organize inherited attribute values in such a hierarchy. A class variable is stored in the base class in which it was defined; its value can be changed by a subclass, but that change propagates to all subclasses of the base class. A class instance variable can take on a different value in each subclass, but there is no inheritance mechanism; its value is privately accessible by its owner, and does not propagate to subclasses. SuperHash solves this class attribute problem and in addition is a general mechanism for defining attribute inheritance structures among objects of any type, not just classes. An example of the former is StateObject, in examples/state-object.rb. An example of the latter is AttributedNode defined in examples/attributed-node.rb.... It's on RAA and at http://redshift.sourceforge.net/superhash, and comes with tests and documentation.