On Dec 11, 2007 9:20 AM, Duncan Coutts <duncan.coutts@worc.ox.ac.uk> wrote:
So my suggestion is that we let classes declare default implementations
of methods from super-classes.
<snip.
Does this proposal have any unintended consequences? I'm not sure.
Please discuss :-)

It creates ambiguity if two classes declare defaults for a common superclass.

My standard example involves Functor, Monad, and Comonad. Both Monad and Comonad could provide a default implementation for fmap. But let's say I have a type which is both a Monad and a Comonad: which default implementation gets used?

I'm disappointed to see this objection isn't listed on the wiki.

--
Dave Menendez <dave@zednenem.com>
< http://www.eyrie.org/~zednenem/>