Changed .hi files are a nuisance because they make Make rerun all GHC compilations
which import the relevant module.   I thought I would not have .hi changing
today when I modified the implementation of an interface, but it did.
According to -hi-diffs the difference is:


  1 lvl18 :: [PrelBase.Char] {-## __A 0 __U (PrelBase.unpackCStringzh "execOneWayCmd 
") ##-} ;
! 1 lvl20 :: [PrelBase.Char] {-## __A 0 __U (PrelBase.unpackCStringzh 
"Expect.hs:441|case") ##-} ;
  1 lvl22 :: RegularExpression.MatchResult -> PrelIOBase.IO [PrelBase.Char] {-## __A 1 
__S L __U (\ matchResult :: RegularExpression.MatchResult -> return @ [PrelBase.Char] 
(case matchResult of wild { RegularExpression.MatchResult ds1 matched ds2 ds3 -> 
matched })) ##-} ;
--- 29,31 ----
  1 lvl18 :: [PrelBase.Char] {-## __A 0 __U (PrelBase.unpackCStringzh "execOneWayCmd 
") ##-} ;
! 2 lvl20 :: [PrelBase.Char] {-## __A 0 __U (PrelBase.unpackCStringzh 
"Expect.hs:461|case") ##-} ;
  1 lvl22 :: RegularExpression.MatchResult -> PrelIOBase.IO [PrelBase.Char] {-## __A 1 
__S L __U (\ matchResult :: RegularExpression.MatchResult -> return @ [PrelBase.Char] 
(case matchResult of wild { RegularExpression.MatchResult ds1 matched ds2 ds3 -> 
matched })) ##-} ;

If you ignore the lines of context etcetera, you'll see that the difference is
only in a line number "Expect.hs:441" rather than "Expect.hs:461".  I submit, mlud,
that line numbers are not something the importing module needs to know about, and
that therefore the location might be better off not inlined . . .

Reply via email to