On Fri, May 1, 2015 at 10:42 AM, Keean Schupke <ke...@fry-it.com> wrote: > On 1 May 2015 at 15:30, Matt Oliveri <atma...@gmail.com> wrote: >> The one and only problem with instance arguments, I gather, is that >> instances are not guaranteed to be coherent. > > I don't see this at all. Instances available for implicit resolution have to > be coherent., however you could still pass explicit instances.
But what enforces the coherence? And why doesn't it rule out the ability to explicitly pass other instances? My understanding is that coherence implies that the program can use only one instance of a given typeclass for a given argument vector. So it makes no sense to pass an instance explicitly; there's only one choice. If there are multiple choices, you don't have coherence. Please, someone correct me if I understood it wrong; I am new to typeclasses. > The way I have looked at this is that a type-class and a record are really > the same thing with different resolution: I'm afraid the rest of your email didn't clarify anything for me. We both understand the advantage of giving up coherence. But you seem to underestimate the disadvantages. I don't see how you expect to recover the guarantees of coherence while allowing instances to be passed explicitly. _______________________________________________ bitc-dev mailing list bitc-dev@coyotos.org http://www.coyotos.org/mailman/listinfo/bitc-dev