--=-GHvEvFfzz4+qbN9794mY
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

On Sun, 2007-10-07 at 04:34 +0900, Sylvain Joyeux wrote:
> > [1] i.e. the inheritance graph is made linear by ensuring that each
> > module only appears once in a class' ancestry

> You don't control *where* your module ends up in the inheritance
> chain, something class inheritance partially does (i.e. you have a
> tree or a graph, therefore a partial ordering). With modules, you
> trade one problem with another.

Linearization has nothing to do with modules per se.  It's one
well-known technique for addressing ambiguity in the presence of
multiple inheritance.  See for instance:

 http://www.webcom.com/haahr/dylan/linearizations.html

The reason linearization is used is that partial ordering is not a
strong enough constraint to avoid ambiguity in method dispatching.
While linearization can be avoided, you would need to make other
trade-offs to compensate (i.e. you can't have your multiply inherited
cake and eat it too).

-mental

--=-GHvEvFfzz4+qbN9794mY
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)

iD8DBQBHCANXSuZBmZzm14ERAn7yAJ9sa6NsP0wb/WPxKkOjNUtFpAUWWwCdE8U6
yYV51GvAvMTiVcksAQ1LBoY=
=Y7Tk
-----END PGP SIGNATURE-----

--=-GHvEvFfzz4+qbN9794mY--