summaryrefslogtreecommitdiff
path: root/compiler/specialise/Rules.lhs
diff options
context:
space:
mode:
authorsimonpj@microsoft.com <unknown>2007-02-21 16:30:47 +0000
committersimonpj@microsoft.com <unknown>2007-02-21 16:30:47 +0000
commiteb2bf7ad9f967861da2e19ff71a80428c7c2df28 (patch)
tree91c74d096d3b81b46256146402087d12340692fa /compiler/specialise/Rules.lhs
parentede4d6f3d1c7ec99c2bbf2148fcb56588a649979 (diff)
downloadhaskell-eb2bf7ad9f967861da2e19ff71a80428c7c2df28.tar.gz
Deal more correctly with orphan instances
Conal Eliott (Trac #1145) exposed a nasty flaw in the way in which orphan instances are computed, when there are functional dependencies in the class. It took me some time to figure out what was going on, and led to more refactoring. Briefly: * Elaborate comments about orphan-hood and versioning added to IfaceSyn * The is_orph field vanishes from InstEnv.Instance * Similarly ru_orph vanishes from CoreSyn.CoreRule * Orphan-hood is computed in MkIface.instanceToIfaceInst, and MkIface.coreRuleToIfaceRule Elsewhere just tidying up.
Diffstat (limited to 'compiler/specialise/Rules.lhs')
-rw-r--r--compiler/specialise/Rules.lhs2
1 files changed, 1 insertions, 1 deletions
diff --git a/compiler/specialise/Rules.lhs b/compiler/specialise/Rules.lhs
index 10eb3f8e86..4b7e926e42 100644
--- a/compiler/specialise/Rules.lhs
+++ b/compiler/specialise/Rules.lhs
@@ -91,7 +91,7 @@ mkLocalRule name act fn bndrs args rhs
= Rule { ru_name = name, ru_fn = fn, ru_act = act,
ru_bndrs = bndrs, ru_args = args,
ru_rhs = rhs, ru_rough = roughTopNames args,
- ru_orph = Just (nameOccName fn), ru_local = True }
+ ru_local = True }
--------------
roughTopNames :: [CoreExpr] -> [Maybe Name]