Okay, so I still agree with what you have said. I think the difference is I was considering first-class instance values, and you are just thinking about some kind of second-class name label for instances?
How are you going to get existential encapsulation with named instances? Keean. On 9 January 2015 at 08:50, William ML Leslie <[email protected]> wrote: > Perhaps I should clarify & expand. > > On 9 January 2015 at 19:27, Keean Schupke <[email protected]> wrote: > > It sounds like we are saying the same thing. For specialisation to occur > in > > any arbitrary function there must be only one global instance for any > given > > type. It requires coherence. > > For specialisation to occur in an arbitrary function, the callsite > must have fully and statically determined what is being specialised > on. There is nothing global about this requirement. > > For example, in > > printStrLn $ sort i int1 > > the expression passes a statically determined instance. The compiler > can freely create the specialised function sort__int1 and replace the > expression with > > printStrLn $ sort__int1 i > > We should note that in the process of specialising sort, we may need > to call not only methods but other functions that depend on the > type-level arguments to sort. These are specialised accordingly, and > because this is the only way they can obtain an instance for a generic > parameter* is to be given it by the caller, there is no conflict here. > > * It is possible in a system like the one we are describing for the > argument not to be generic at all, that is a much more interesting > case for inference. > > > If instances are incoherent, you need to indicate which one to use by > > passing value, which prevents specialisation if the value is first class, > > because you don't know from which context the current function will be > > called. > > It may be. That is, with or without coherence, existential > encapsulation needs to be possible. > > -- > William Leslie > > Notice: > Likely much of this email is, by the nature of copyright, covered > under copyright law. You absolutely MAY reproduce any part of it in > accordance with the copyright law of the nation you are reading this > in. Any attempt to DENY YOU THOSE RIGHTS would be illegal without > prior contractual agreement. > _______________________________________________ > bitc-dev mailing list > [email protected] > http://www.coyotos.org/mailman/listinfo/bitc-dev >
_______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
