Move declaration of Rulebase from Rules to CoreSyn
[ghc.git] / compiler / coreSyn / CoreSyn.hs
index 32ebd8a..86939bd 100644 (file)
@@ -71,7 +71,7 @@ module CoreSyn (
         deAnnotate, deAnnotate', deAnnAlt, collectAnnBndrs,
 
         -- * Core rule data types
-        CoreRule(..),   -- CoreSubst, CoreTidy, CoreFVs, PprCore only
+        CoreRule(..), RuleBase,
         RuleName, RuleFun, IdUnfoldingFun, InScopeEnv,
 
         -- ** Operations on 'CoreRule's
@@ -91,6 +91,7 @@ import Var
 import Type
 import Coercion
 import Name
+import NameEnv( NameEnv )
 import Literal
 import DataCon
 import Module
@@ -708,6 +709,11 @@ The CoreRule type and its friends are dealt with mainly in CoreRules,
 but CoreFVs, Subst, PprCore, CoreTidy also inspect the representation.
 -}
 
+-- | Gathers a collection of 'CoreRule's. Maps (the name of) an 'Id' to its rules
+type RuleBase = NameEnv [CoreRule]
+        -- The rules are are unordered;
+        -- we sort out any overlaps on lookup
+
 -- | A 'CoreRule' is:
 --
 -- * \"Local\" if the function it is a rule for is defined in the