[GHC] #13072: Move large tuples to a separate module in base

GHC ghc-devs at haskell.org
Mon Jan 9 16:29:43 UTC 2017


#13072: Move large tuples to a separate module in base
-------------------------------------+-------------------------------------
        Reporter:  rwbarton          |                Owner:  rwbarton
            Type:  task              |               Status:  new
        Priority:  normal            |            Milestone:  8.2.1
       Component:  libraries/base    |              Version:  8.1
      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 rwbarton):

 Replying to [comment:9 rwbarton]:
 > Replying to [comment:6 simonpj]:
 > > So `M` and `LargeTuple` have already been checked; so importers of `M`
 won't need to check.  Right?
 >
 > Interesting. If it's supposed to work this way in this scenario, it
 doesn't (and hasn't since 7.8.4 at least). Any user module that imports
 another user module that defines a type family instance forces reading the
 interface files in base that define type family instances. I'll take a
 closer look.

 {{{
 How do we know which pairs of modules have already been checked?  Any pair
 of
 modules where both modules occur in the `HscTypes.dep_finsts' set (of the
 `HscTypes.Dependencies') of one of our directly imported modules must have
 already been checked.  Everything else, we check now.  (So that we can be
 certain that the modules in our `HscTypes.dep_finsts' are consistent.)
 }}}

 Should we also be assuming that if module `A` is one of our directly
 imported modules and `A`'s `dep_finsts` are `[B,C,D]` that `A` has been
 checked against each of `B`, `C`, `D`?

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13072#comment:10>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list