[add RULEBINDER property
John Meacham <john@repetae.net>**20060224143825] hunk ./E/Rules.hs 9
+    dropArguments,
hunk ./E/Rules.hs 17
-    dropArguments,
hunk ./E/Rules.hs 21
+    ruleFreeVars,
hunk ./E/Rules.hs 23
-    ruleFreeVars
+    rulesFromARules
hunk ./E/Rules.hs 52
+import Info.Types
hunk ./E/Rules.hs 177
+rulesFromARules :: ARules -> [Rule]
+rulesFromARules (ARules rs) = rs
+
hunk ./E/Rules.hs 201
-    f rule = rule { ruleNArgs = length  (ruleArgs rule) }
+    f rule = rule {
+        ruleNArgs = length  (ruleArgs rule),
+        ruleBinds = bs,
+        ruleBody = g (ruleBody rule),
+        ruleArgs = map g (ruleArgs rule)
+        } where
+        bs = map (setProperty prop_RULEBINDER) (ruleBinds rule)
+        g e = substMap (Map.fromList [ (tvrNum t, EVar t) | t <- bs ]) e
hunk ./Info/Types.hs 62
+prop_RULEBINDER = toAtom "_RULEBINDER"