[GHC] #9334: Implement "instance chains"
GHC
ghc-devs at haskell.org
Wed Aug 24 18:02:16 UTC 2016
#9334: Implement "instance chains"
-------------------------------------+-------------------------------------
Reporter: diatchki | Owner: diatchki
Type: feature request | Status: new
Priority: normal | Milestone:
Component: Compiler (Type | Version: 7.9
checker) |
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by Iceland_jack):
Replying to [comment:1 goldfire]:
> 2. This doesn't necessarily mean that we'll never need overlapping
instances -- instance chains seem to only work when the overlap would be
contained only in one module. Some programs require inter-module overlap
(say, for a global "default" instance).
Here's some data from [http://homepages.inf.ed.ac.uk/jmorri14/d/final.pdf
Type Classes and Instance Chains: A Relational Approach]
> Our first question was how frequently the open-endedness of overlapping
instances was necessary in practice. To answer this question, we
determined whether the instances in each set were located in the same
module, in different modules within the same package, or in different
packages (Figure 3.1). Out of the 123 sets, 19 included overlapping
instances from different modules, and 6 (of those 19) included overlapping
instances from different packages. THe[sic] majority (104, or 85%) of the
sets only included instances from a single module. This suggests that,
while applications exist for instances overlapping across modules, most
overlapping instances are defined locally.
>
> — page 37
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9334#comment:15>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list