<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><br class=""><blockquote type="cite" class="">On 9 Mar 2016, at 23:15 , James Noble <<a href="mailto:kjx@ecs.vuw.ac.nz" class="">kjx@ecs.vuw.ac.nz</a>> wrote:<br class=""><br class="">Right. This will only work if traits don't get the default methods - if the overall model discourages trait conflicts rather than encourages and mitigates them. <br class=""></blockquote><br class=""><div class="">Apparently, my post wasn’t clear. The problem has nothing to do with traits getting default methods. It arises because classes <b class="">inherit</b> default methods.</div><div class=""><br class=""></div><div class="">Yes, if we get rid of default methods altogether, then this problem won’t be there — we will instead have another problem. Experience has shown that giving all objects minimal behavior is a good idea.</div><div class=""><br class=""></div><div class=""><blockquote type="cite" class=""><span style="font-family: Times-Roman;" class="">part of me wants to say: if it hurts, perhaps don't do it that way.</span><br style="font-family: Times-Roman;" class=""><span style="font-family: Times-Roman;" class="">If you only used traits (Fortress style, right?)</span><br style="font-family: Times-Roman;" class=""><span style="font-family: Times-Roman;" class="">then you wouldn't have the "override for free" option:</span><br style="font-family: Times-Roman;" class=""><span style="font-family: Times-Roman;" class="">ideally there would only be one trait defining each method in the composition.</span></blockquote><br class=""></div><div class="">I <i class="">did</i> only use traits. That’s the problem.</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre"> </span>Andrew</div><div class=""><br class=""></div></body></html>