[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