----- Original Message ----- 
From: "Hal E. Fulton" <hal9000 / hypermetrics.com>

True. I'm still inclined to distinguish on the
basis that when you inherit, you (can) get instance
data, whereas when you mix in, you typically don't.

As I think about this, though, even that may be a
false distinction. What do you think?
----------------------------

Not to get too philosophical, but...

On the Ruby side of things, I think the distinction is false.  Modules are
basically a form of multiple inheritance.  They can do anything with
instance data that classes can.

On the human side of things, however, there's an important distinction.
Matz made modules and disallowed multiple inheritance.  These are largely
(only?) conceptual distinctions, but that doesn't mean they aren't
important.  Even if modules are just classes without `new' (which, BTW, we
could easily add), we *use* them differently.

So, on the Ruby side, the distinction seems false.  On the human side, the
distinction seems important.  It seems to me (just one guy's opinion) that
coloring modules a different color, but making the arrows all the same
color, expresses this well.


Chris