[project @ 2001-07-25 07:42:23 by simonpj]
authorsimonpj <unknown>
Wed, 25 Jul 2001 07:42:23 +0000 (07:42 +0000)
committersimonpj <unknown>
Wed, 25 Jul 2001 07:42:23 +0000 (07:42 +0000)
commit729046306d0a028ebfc01d29006e3aa35e9d1bab
treefccaacd46c8fdec243c837c13cbb768c7de51782
parent394de04a64b0f4be63ef1495a7009faf2ef3b6b4
[project @ 2001-07-25 07:42:23 by simonpj]
---------------------------------------
Fix a grevious dict-inlining infelicity
---------------------------------------

This commit fixes an infelicity that must have been there
for a long time.  The problem was that dictionary functions
(arising from instance declarations) were treated as GlobalIds,
and hence no taken account of when doing free variable and dependency
analysis.    As a result, the specialiser was messing up dependency
order, so the program was considerably more complex than it should
be by the time it got to the strictness analyser.

Net result:
PrelRead.$sreduce :: Integer -> Integer -> (Integer,Integer)
didn't get detected as strict.

Easily fixed, by making DictFunIds into LocalIds (albeit exported ones).
ghc/compiler/basicTypes/MkId.lhs