<div dir="ltr">It is actually quite fundamental.<div><br></div><div>Instance resolution works on pattern matching on the type and we need all instances to be "global" and not able to be hidden or locally overridden to avoid coherence problems.</div><div><br></div><div>There have been attempts to relax this restriction in the past, none of which are particularly satisfactory. </div><div><br></div><div><div>* <a href="http://dspace.library.uu.nl/handle/1874/294072">http://dspace.library.uu.nl/handle/1874/294072</a> is probably the most recent, but some are quite old.</div></div><div><br></div><div>But basically all of them have run afoul of other ways to get "stuck" when resolving instances, or needing a vocabulary to track provenance of instances, or violate the open world assumptions. </div><div><br></div><div>Scala's "implicits" break one way on this, Haskell breaks another. The moment you can even qualify the set of instances you get you lose safety for a lot of things like Data.Set, and many refactorings you can do to code today without care become fraught with danger.</div><div><br></div><div>-Edward</div><div><br></div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 24, 2016 at 6:14 PM, Kosyrev Serge <span dir="ltr"><<a href="mailto:_deepfire@feelingofgreen.ru" target="_blank">_deepfire@feelingofgreen.ru</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">David Feuer <<a href="mailto:david.feuer@gmail.com">david.feuer@gmail.com</a>> writes:<br>
> Haskell's notion of Functor is in fact somewhat arbitrary from the<br>
> standpoint of mathematical functors. It's not at all arbitrary from<br>
> the standpoint of the general variety of type system Haskell uses.<br>
<br>
</span>This fact that we can't partially apply a type constructor in an<br>
arbitrary way -- is it really all that fundamental to the Haskell type system?<br>
<br>
Is it truly something more than an implementation detail?<br>
<br>
If so, why?<br>
<div class="HOEnZb"><div class="h5"><br>
--<br>
с уважениeм / respectfully,<br>
Косырев Сергей<br>
</div></div></blockquote></div><br></div>