HaloO, I have one further question to the document. It mentions chains of type coercions that are applied in the compatibility stage. A type that has fewer conversion steps is considered more specific. But is that a wise thing to do in an MMD system?
I would expect no coercions to occur. How can the number of steps be important? Consider one chain Foo --> Bar --> Baz and one Blahh --> Baz. Why should the second be more specific? In the end the type system has to decide if Foo or Blahh is more specific with respect to Baz or if they are incomparable. This depends on the partial order of parameter types of the candidates. Note that this order is rooted at the actual argument type. Actually the type narrowness consideration touches the core of the type system! Here the partial order of types manifests itself. What are its building blocks? Wouldn't some structural type analysis be helpful here? Regards, TSa. --