[make joining of rules code more robust, clean up an oddity
John Meacham <john@repetae.net>**20051006232514] hunk ./E/Rules.hs 154
-    mappend (ARules a) (ARules b) = ARules (sortUnder ruleNArgs (snubUnder ruleName $ a ++ b))
+    mappend = joinARules
+
+
+joinARules ar@(ARules a) br@(ARules b)
+    | [] <- rs = ARules []
+    | all (== r) rs = ARules (sortUnder ruleNArgs (snubUnder ruleName $ a ++ b))
+    | otherwise = error $ "mixing rules!" ++ show (ar,br) where
+   rs@(r:_) = map ruleHead a ++ map ruleHead b
+
+
hunk ./E/Strictness.hs 62
-    let idm = Map.fromList $ (0,L):[ (tvrIdent x,y) | (x,y) <- cr]
+    let idm = Map.fromList $ [ (tvrIdent x,y) | (x,y) <- cr]