From: MenTaLguY Date: 2007-10-07T06:51:19+09:00 Subject: Re: The Case for Multiple-Inheritance --=-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--