[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