+ def inherit(other)
+ unless other.is_a?(Description)
+ raise(ArgumentError, "Cannot inherit from description")
+ end
+
+ prot = ["@name", "@value"]
+
+ (instance_variables - prot).each do |v|
+ n = other.instance_variable_get(v.intern)
+ n = n.dup rescue n
+ instance_variable_set(v.intern, n)
+ end
+ end
+