[GHC] #6018: Injective type families
GHC
ghc-devs at haskell.org
Fri Oct 31 13:33:43 UTC 2014
#6018: Injective type families
-------------------------------------+-------------------------------------
Reporter: lunaris | Owner: jstolarek
Type: feature | Status: new
request | Milestone: 7.10.1
Priority: normal | Version: 7.4.1
Component: Compiler | Keywords: TypeFamilies,
Resolution: | Injective
Operating System: | Architecture: Unknown/Multiple
Unknown/Multiple | Difficulty: Unknown
Type of failure: | Blocked By:
None/Unknown | Related Tickets: #4259
Test Case: |
Blocking: |
Differential Revisions: Phab:D202 |
-------------------------------------+-------------------------------------
Comment (by jstolarek):
Oh, and while we're talking about open type families, there's a design
decision to make. Verifying user-supplied injectivity condition requires
comparing the same equations that are compared by compatibility check.
Should we:
a) verify injectivity at the same time we verify compatibility?
b) verify injectivity in a separate pass?
a) might seem like an obvious answer because it allows us to avoid
traversing the equation pairs twice. However, that makes compatibility
checking code in `FamInstEnv.lookup_fam_inst_env'` a bit more complicated.
b) on the other hand can allow us to skip the injectivity checking
altogether if the user did not supply any injectivity declarations. This
would be a big win since compilation performance would not be degraded for
already existing code (since there are no injectivity declarations). I am
in favour of option b).
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/6018#comment:99>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list