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

Reply via email to