The interesting point missed in this article is that mixins actually <i>do</i> create a superclass relationship in Ruby:<p><a href="http://gist.github.com/945435" rel="nofollow">http://gist.github.com/945435</a><p>There's an anonymous superclass injected into the inheritance chain every time a module is included into a class.<p>So, while it might make sense to use explicit superclasses as a semantic modeling method, the runtime behavior is effectively the same whether you use a mixin or a concrete class.