Suggested improvements to .hi-boot files

George Russell
Mon, 06 Jan 2003 12:23:16 +0100

I am using .hi-boot files quite a lot at the moment.  I'm very grateful for the recent
change to a more Haskelly syntax, but I have a couple of suggestions for the GHC team
to implement in their no doubt ample free time. 8-)

(1) Importing a module {-# SOURCE #-} into itself currently produces a warning, but no other action
so far as I can see.  I suggest instead that this provoke a check that the .hi-boot module accurately
reflects reality.   (Otherwise there is no way of checking is there?)  Or perhaps you could add a
pragma {-# RECURSIVE #-} at the top of the module that indicates the presence of a .hi-boot file which
should be checked.

(2) Instance declarations (with empty bodies) should be permitted.

(3) There should be an option to pass .hi-boot files through cpp.  This would not be particularly useful
to me, as I have already implemented a pre-compilation phase which does just that, but it might
be useful for others.

(4) The manual should recommend using say the GHCi :info command to find out that,
say, IO must be called GHC.IOBase.IO.  (If I'd known this it'd have saved me having
to trawl through the GHC sources.)  Obviously one would ideally be able to type IO rather
than GHC.IOBase.IO, but my guess would be that this would be (a) harder to implement than
the other suggestions, (b) less useful.

Happy New Year by the way.  If any Simon is still reading, about long have we got before the 
current old library hierarchy is done away with in an official release?  Sometime before then 
I will need to carry out a massive global-exchange.