
Yes. But the price you pay is that the compilation of A and B can no longer be done in parallel. I tend to think of an hs-boot files as one way you could speed up compilation, a bit like header files, at the cost of
#14092: hs-boot unfolding visibility not consistent between --make and -c -------------------------------------+------------------------------------- Reporter: ezyang | Owner: (none) Type: bug | Status: new Priority: low | Milestone: Component: Compiler | Version: 8.2.1 Resolution: | Keywords: hs-boot 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 duog): Replying to [comment:3 ezyang]: the quality of optimized code.
I find this very convincing. Do you think this is a controversial view?
It's the simplifier that is doing more inlining than it should, isn't it? (Not the typechecker.)
Yes!
The typechecker is providing the Ids with too many unfoldings attached though, right? Also see the example in comment 1 where a program typechecks because it can see a name that should be hidden to it.
And how much does all this matter anyway?
Not much, probably!
This is of interest to me because I am working on --make mode (trac:14095, trac:14103), and the treatment of hs-boot modules is by far the trickiest part. It seems that the correct behaviour isn't very well specified. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14092#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler