Luke Palmer wrote:
Anyway, I think that once we start diving inside expressions to measure their specificity, we've gotten too complex to be predictable.
Well, we don't have where clauses, but where closures! The former should be a declarative sublanguge like regexps. They are evaluated at compile time or type instanciation time or however it is called and entered into the type constraint environment where the MMD looks for it. For the latter a warning should be produced and they are *not* considered for MMD other than applicability checking. They are of course called for non-invocant params, in assignments etc. For research on the topic see e.g. http://www.cs.washington.edu/research/projects/cecil/www/Papers/predicate-classes.html -- TSa (Thomas Sandlaß)