diff --git a/src-ag/DefaultRules.ag b/src-ag/DefaultRules.ag
--- a/src-ag/DefaultRules.ag
+++ b/src-ag/DefaultRules.ag
@@ -328,7 +328,7 @@
                                           | otherwise = "(" ++ op ++ " " ++ l ++ " " ++ r ++ ")"  -- associates to the right
                                         str = foldr1 opExpr (map (flip attrName n) elems)
 
-    in makeRule (_LOC,n)
+    in makeRule (_LHS,n)
                 (Expression noPos tks)
                 ("use rule " ++ pos)
                 False
@@ -435,20 +435,18 @@
         (selfAttrs, normalAttrs)
           = Map.partitionWithKey (\k _ -> maybe False isSELFNonterminal $ Map.lookup k @lhs.synOrig) @lhs.syn
 
-        others = snd $ removeDefined @rules.definedAttrs (_LHS, normalAttrs)
-        
-        -- Generate use attrs as local
-        useAttrs = fst $ splitAttrs @lhs.useMap $ 
-                   snd $ removeDefined @rules.definedAttrs (_LOC, normalAttrs)
+        (_,undefAttrs)
+          = removeDefined @rules.definedAttrs (_LHS, normalAttrs)
 
+        (useAttrs,others)
+          = splitAttrs @lhs.useMap undefAttrs
+
         (rules1, errors1)
           = concatRE $ map (copyRule @lhs.options @lhs.wrappers @lhs.nt @con @lhs.cr locals)
                            (zip envs (map (removeDefined @rules.definedAttrs) @children.inputs))
 
         uRules
           = map (useRule @lhs.options locals @children.outputs) useAttrs
-        uLocals
-          = Set.fromList $ map fst useAttrs
 
         -- creates a loc.xxx if there is a synthesized attr xxx of type SELF and no
         -- loc.xxx exists yet. If there exists a terminal yyy and a local loc.yyy, then
@@ -483,7 +481,7 @@
                      @lhs.nt
                      @con
                      @lhs.cr
-                     (locals `Set.union` uLocals)
+                     locals
                      (lhs_env, (_LHS, others))
     in (uRules++selfLocRules++selfRules++rules5++rules1, errors1><errs5)
 
diff --git a/src-generated/DefaultRules.hs b/src-generated/DefaultRules.hs
--- a/src-generated/DefaultRules.hs
+++ b/src-generated/DefaultRules.hs
@@ -234,7 +234,7 @@
                                           | otherwise = "(" ++ op ++ " " ++ l ++ " " ++ r ++ ")"  -- associates to the right
                                         str = foldr1 opExpr (map (flip attrName n) elems)
 
-    in makeRule (_LOC,n)
+    in makeRule (_LHS,n)
                 (Expression noPos tks)
                 ("use rule " ++ pos)
                 False
@@ -309,7 +309,7 @@
                       deprChild =  maybe False (== _ACHILD) sel
 {-# LINE 311 "dist/build/DefaultRules.hs" #-}
 
-{-# LINE 490 "./src-ag/DefaultRules.ag" #-}
+{-# LINE 488 "./src-ag/DefaultRules.ag" #-}
 
 buildTuple fs = "(" ++ concat (intersperse "," fs) ++ ")"
 
@@ -378,7 +378,7 @@
     childLoc = Ident (show target ++ "_merge") (getPos target)
 {-# LINE 380 "dist/build/DefaultRules.hs" #-}
 
-{-# LINE 608 "./src-ag/DefaultRules.ag" #-}
+{-# LINE 606 "./src-ag/DefaultRules.ag" #-}
 
 elimSelfId :: NontermIdent -> [Identifier] -> Type -> Type
 elimSelfId nt args Self = NT nt (map getName args) False
@@ -389,7 +389,7 @@
 elimSelfStr _ _ tp = tp
 {-# LINE 391 "dist/build/DefaultRules.hs" #-}
 
-{-# LINE 660 "./src-ag/DefaultRules.ag" #-}
+{-# LINE 658 "./src-ag/DefaultRules.ag" #-}
 
 -- When a rule has a name, create an alias for a rule
 -- and a modified rule that refers to the alias
@@ -404,13 +404,13 @@
   r'    = Rule Nothing pat expr' owrt origin False True identity Nothing False
 {-# LINE 406 "dist/build/DefaultRules.hs" #-}
 
-{-# LINE 677 "./src-ag/DefaultRules.ag" #-}
+{-# LINE 675 "./src-ag/DefaultRules.ag" #-}
 
 needsMultiRules :: Options -> Bool
 needsMultiRules opts = (visit opts || withCycle opts) && not (kennedyWarren opts)
 {-# LINE 412 "dist/build/DefaultRules.hs" #-}
 
-{-# LINE 682 "./src-ag/DefaultRules.ag" #-}
+{-# LINE 680 "./src-ag/DefaultRules.ag" #-}
 
 {-
 multiRule replaces
@@ -632,36 +632,36 @@
                               else _syn1
                               {-# LINE 634 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule6 #-}
-   {-# LINE 576 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 574 "./src-ag/DefaultRules.ag" #-}
    rule6 = \ !kind_ !name_ !tp_ ->
-                        {-# LINE 576 "./src-ag/DefaultRules.ag" #-}
+                        {-# LINE 574 "./src-ag/DefaultRules.ag" #-}
                         (name_,tp_,kind_)
                         {-# LINE 640 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule7 #-}
-   {-# LINE 598 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 596 "./src-ag/DefaultRules.ag" #-}
    rule7 = \ !name_ !tp_ ->
-                           {-# LINE 598 "./src-ag/DefaultRules.ag" #-}
+                           {-# LINE 596 "./src-ag/DefaultRules.ag" #-}
                            case tp_ of
                              NT nt params _ -> (nt, params)
                              Self           -> error ("The type of child " ++ show name_ ++ " should not be a Self type.")
                              Haskell t      -> (identifier t, [])
                            {-# LINE 649 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule8 #-}
-   {-# LINE 602 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 600 "./src-ag/DefaultRules.ag" #-}
    rule8 = \ !_inh !_nt !_params ->
-               {-# LINE 602 "./src-ag/DefaultRules.ag" #-}
+               {-# LINE 600 "./src-ag/DefaultRules.ag" #-}
                Map.map (elimSelfStr _nt     _params    ) _inh
                {-# LINE 655 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule9 #-}
-   {-# LINE 603 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 601 "./src-ag/DefaultRules.ag" #-}
    rule9 = \ !_nt !_params !_syn ->
-               {-# LINE 603 "./src-ag/DefaultRules.ag" #-}
+               {-# LINE 601 "./src-ag/DefaultRules.ag" #-}
                Map.map (elimSelfStr _nt     _params    ) _syn
                {-# LINE 661 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule10 #-}
-   {-# LINE 644 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 642 "./src-ag/DefaultRules.ag" #-}
    rule10 = \ !kind_ !name_ !tp_ ->
-                 {-# LINE 644 "./src-ag/DefaultRules.ag" #-}
+                 {-# LINE 642 "./src-ag/DefaultRules.ag" #-}
                  Child name_ tp_ kind_
                  {-# LINE 667 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule11 #-}
@@ -823,9 +823,9 @@
                          (_hdIname, _hdIsynthesized) : _tlIoutputs
                          {-# LINE 825 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule15 #-}
-   {-# LINE 572 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 570 "./src-ag/DefaultRules.ag" #-}
    rule15 = \ ((!_hdIfield) ::  (Identifier,Type,ChildKind) ) ((!_tlIfields) :: [(Identifier,Type,ChildKind)]) ->
-                        {-# LINE 572 "./src-ag/DefaultRules.ag" #-}
+                        {-# LINE 570 "./src-ag/DefaultRules.ag" #-}
                         _hdIfield : _tlIfields
                         {-# LINE 831 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule16 #-}
@@ -931,9 +931,9 @@
                          []
                          {-# LINE 933 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule35 #-}
-   {-# LINE 573 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 571 "./src-ag/DefaultRules.ag" #-}
    rule35 = \  (_ :: ()) ->
-                        {-# LINE 573 "./src-ag/DefaultRules.ag" #-}
+                        {-# LINE 571 "./src-ag/DefaultRules.ag" #-}
                         []
                         {-# LINE 939 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule36 #-}
@@ -1051,33 +1051,33 @@
                                  typeSyns_
                                  {-# LINE 1053 "dist/build/DefaultRules.hs"#-}
    {-# INLINE rule47 #-}
-   {-# LINE 625 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 623 "./src-ag/DefaultRules.ag" #-}
    rule47 = \  (_ :: ()) ->
-                           {-# LINE 625 "./src-ag/DefaultRules.ag" #-}
+                           {-# LINE 623 "./src-ag/DefaultRules.ag" #-}
                            1
                            {-# LINE 1059 "dist/build/DefaultRules.hs"#-}
    {-# INLINE rule48 #-}
-   {-# LINE 739 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 737 "./src-ag/DefaultRules.ag" #-}
    rule48 = \ !manualAttrOrderMap_ ->
-                                   {-# LINE 739 "./src-ag/DefaultRules.ag" #-}
+                                   {-# LINE 737 "./src-ag/DefaultRules.ag" #-}
                                    manualAttrOrderMap_
                                    {-# LINE 1065 "dist/build/DefaultRules.hs"#-}
    {-# INLINE rule49 #-}
-   {-# LINE 805 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 803 "./src-ag/DefaultRules.ag" #-}
    rule49 = \ !augmentsMap_ ->
-                                                    {-# LINE 805 "./src-ag/DefaultRules.ag" #-}
+                                                    {-# LINE 803 "./src-ag/DefaultRules.ag" #-}
                                                     augmentsMap_
                                                     {-# LINE 1071 "dist/build/DefaultRules.hs"#-}
    {-# INLINE rule50 #-}
-   {-# LINE 812 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 810 "./src-ag/DefaultRules.ag" #-}
    rule50 = \ !aroundsMap_ ->
-                                                   {-# LINE 812 "./src-ag/DefaultRules.ag" #-}
+                                                   {-# LINE 810 "./src-ag/DefaultRules.ag" #-}
                                                    aroundsMap_
                                                    {-# LINE 1077 "dist/build/DefaultRules.hs"#-}
    {-# INLINE rule51 #-}
-   {-# LINE 820 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 818 "./src-ag/DefaultRules.ag" #-}
    rule51 = \ !mergeMap_ ->
-                                                  {-# LINE 820 "./src-ag/DefaultRules.ag" #-}
+                                                  {-# LINE 818 "./src-ag/DefaultRules.ag" #-}
                                                   mergeMap_
                                                   {-# LINE 1083 "dist/build/DefaultRules.hs"#-}
    {-# INLINE rule52 #-}
@@ -1463,39 +1463,39 @@
                                nt_
                                {-# LINE 1465 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE rule67 #-}
-   {-# LINE 594 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 592 "./src-ag/DefaultRules.ag" #-}
    rule67 = \ !inh_ !nt_ !params_ ->
-               {-# LINE 594 "./src-ag/DefaultRules.ag" #-}
+               {-# LINE 592 "./src-ag/DefaultRules.ag" #-}
                Map.map (elimSelfId nt_ params_) inh_
                {-# LINE 1471 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE rule68 #-}
-   {-# LINE 595 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 593 "./src-ag/DefaultRules.ag" #-}
    rule68 = \ !nt_ !params_ !syn_ ->
-               {-# LINE 595 "./src-ag/DefaultRules.ag" #-}
+               {-# LINE 593 "./src-ag/DefaultRules.ag" #-}
                Map.map (elimSelfId nt_ params_) syn_
                {-# LINE 1477 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE rule69 #-}
-   {-# LINE 634 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 632 "./src-ag/DefaultRules.ag" #-}
    rule69 = \ !_inh1 ((!_prodsIoutput) :: Productions) !_syn1 !nt_ !params_ ->
-                 {-# LINE 634 "./src-ag/DefaultRules.ag" #-}
+                 {-# LINE 632 "./src-ag/DefaultRules.ag" #-}
                  Nonterminal nt_ params_ _inh1     _syn1     _prodsIoutput
                  {-# LINE 1483 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE rule70 #-}
-   {-# LINE 806 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 804 "./src-ag/DefaultRules.ag" #-}
    rule70 = \ ((!_lhsIaugmentsIn) :: Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))) !nt_ ->
-                                                  {-# LINE 806 "./src-ag/DefaultRules.ag" #-}
+                                                  {-# LINE 804 "./src-ag/DefaultRules.ag" #-}
                                                   Map.findWithDefault Map.empty nt_ _lhsIaugmentsIn
                                                   {-# LINE 1489 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE rule71 #-}
-   {-# LINE 813 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 811 "./src-ag/DefaultRules.ag" #-}
    rule71 = \ ((!_lhsIaroundsIn) :: Map NontermIdent (Map ConstructorIdent (Map Identifier [Expression]))) !nt_ ->
-                                                   {-# LINE 813 "./src-ag/DefaultRules.ag" #-}
+                                                   {-# LINE 811 "./src-ag/DefaultRules.ag" #-}
                                                    Map.findWithDefault Map.empty nt_ _lhsIaroundsIn
                                                    {-# LINE 1495 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE rule72 #-}
-   {-# LINE 821 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 819 "./src-ag/DefaultRules.ag" #-}
    rule72 = \ ((!_lhsImergesIn) :: Map NontermIdent (Map ConstructorIdent (Map Identifier (Identifier,[Identifier],Expression)))) !nt_ ->
-                                                  {-# LINE 821 "./src-ag/DefaultRules.ag" #-}
+                                                  {-# LINE 819 "./src-ag/DefaultRules.ag" #-}
                                                   Map.findWithDefault Map.empty nt_ _lhsImergesIn
                                                   {-# LINE 1501 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule73 #-}
@@ -2606,23 +2606,23 @@
           in __result_ )
      in C_Pattern_s55 k55
    {-# NOINLINE rule154 #-}
-   {-# LINE 566 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 564 "./src-ag/DefaultRules.ag" #-}
    rule154 = \ ((!_patIdefinedAttrs) :: Set (Identifier,Identifier)) !attr_ !field_ ->
-                               {-# LINE 566 "./src-ag/DefaultRules.ag" #-}
+                               {-# LINE 564 "./src-ag/DefaultRules.ag" #-}
                                Set.insert (field_,attr_) _patIdefinedAttrs
                                {-# LINE 2614 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE rule155 #-}
-   {-# LINE 567 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 565 "./src-ag/DefaultRules.ag" #-}
    rule155 = \ ((!_patIlocals) :: Set Identifier) !attr_ !field_ ->
-                               {-# LINE 567 "./src-ag/DefaultRules.ag" #-}
+                               {-# LINE 565 "./src-ag/DefaultRules.ag" #-}
                                if field_ == _LOC
                                   then Set.insert attr_ _patIlocals
                                   else _patIlocals
                                {-# LINE 2622 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE rule156 #-}
-   {-# LINE 584 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 582 "./src-ag/DefaultRules.ag" #-}
    rule156 = \  (_ :: ()) ->
-                                    {-# LINE 584 "./src-ag/DefaultRules.ag" #-}
+                                    {-# LINE 582 "./src-ag/DefaultRules.ag" #-}
                                     True
                                     {-# LINE 2628 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule157 #-}
@@ -3545,16 +3545,15 @@
           lhs_env    = last envs
           (selfAttrs, normalAttrs)
             = Map.partitionWithKey (\k _ -> maybe False isSELFNonterminal $ Map.lookup k _lhsIsynOrig) _lhsIsyn
-          others = snd $ removeDefined _rulesIdefinedAttrs (_LHS, normalAttrs)
-          useAttrs = fst $ splitAttrs _lhsIuseMap $
-                     snd $ removeDefined _rulesIdefinedAttrs (_LOC, normalAttrs)
+          (_,undefAttrs)
+            = removeDefined _rulesIdefinedAttrs (_LHS, normalAttrs)
+          (useAttrs,others)
+            = splitAttrs _lhsIuseMap undefAttrs
           (rules1, errors1)
             = concatRE $ map (copyRule _lhsIoptions _lhsIwrappers _lhsInt con_ _lhsIcr locals)
                              (zip envs (map (removeDefined _rulesIdefinedAttrs) _childrenIinputs))
           uRules
             = map (useRule _lhsIoptions locals _childrenIoutputs) useAttrs
-          uLocals
-            = Set.fromList $ map fst useAttrs
           selfLocRules
             =  [ selfRule False attr $
                    lexTokens _lhsIoptions noPos $
@@ -3582,44 +3581,44 @@
                        _lhsInt
                        con_
                        _lhsIcr
-                       (locals `Set.union` uLocals)
+                       locals
                        (lhs_env, (_LHS, others))
       in (uRules++selfLocRules++selfRules++rules5++rules1, errors1><errs5)
-      {-# LINE 3589 "dist/build/DefaultRules.hs"#-}
+      {-# LINE 3588 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule206 #-}
-   {-# LINE 638 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 636 "./src-ag/DefaultRules.ag" #-}
    rule206 = \ !_augmentsIn !_newRls ((!_rulesIoutput) :: Rules) ->
-                     {-# LINE 638 "./src-ag/DefaultRules.ag" #-}
+                     {-# LINE 636 "./src-ag/DefaultRules.ag" #-}
                      foldr addAugments (_rulesIoutput ++ _newRls) (Map.assocs _augmentsIn    )
-                     {-# LINE 3595 "dist/build/DefaultRules.hs"#-}
+                     {-# LINE 3594 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule207 #-}
-   {-# LINE 639 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 637 "./src-ag/DefaultRules.ag" #-}
    rule207 = \ !_aroundsIn !_extra1 ->
-                     {-# LINE 639 "./src-ag/DefaultRules.ag" #-}
+                     {-# LINE 637 "./src-ag/DefaultRules.ag" #-}
                      foldr addArounds _extra1     (Map.assocs _aroundsIn    )
-                     {-# LINE 3601 "dist/build/DefaultRules.hs"#-}
+                     {-# LINE 3600 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule208 #-}
-   {-# LINE 640 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 638 "./src-ag/DefaultRules.ag" #-}
    rule208 = \ !_extra2 !_mergesIn ->
-                     {-# LINE 640 "./src-ag/DefaultRules.ag" #-}
+                     {-# LINE 638 "./src-ag/DefaultRules.ag" #-}
                      foldr addMerges _extra2     (Map.assocs _mergesIn    )
-                     {-# LINE 3607 "dist/build/DefaultRules.hs"#-}
+                     {-# LINE 3606 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule209 #-}
-   {-# LINE 641 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 639 "./src-ag/DefaultRules.ag" #-}
    rule209 = \ ((!_childrenIoutput) :: Children) !_extra3 ((!_typeSigsIoutput) :: TypeSigs) !con_ !constraints_ !macro_ !params_ ->
-                     {-# LINE 641 "./src-ag/DefaultRules.ag" #-}
+                     {-# LINE 639 "./src-ag/DefaultRules.ag" #-}
                      Production con_ params_ constraints_ _childrenIoutput _extra3     _typeSigsIoutput macro_
-                     {-# LINE 3613 "dist/build/DefaultRules.hs"#-}
+                     {-# LINE 3612 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule210 #-}
-   {-# LINE 749 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 747 "./src-ag/DefaultRules.ag" #-}
    rule210 = \ ((!_lhsImanualAttrOrderMap) :: AttrOrderMap) ((!_lhsInt) :: NontermIdent) !con_ ->
-                        {-# LINE 749 "./src-ag/DefaultRules.ag" #-}
+                        {-# LINE 747 "./src-ag/DefaultRules.ag" #-}
                         Set.toList $ Map.findWithDefault Set.empty con_ $ Map.findWithDefault Map.empty _lhsInt _lhsImanualAttrOrderMap
-                        {-# LINE 3619 "dist/build/DefaultRules.hs"#-}
+                        {-# LINE 3618 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule211 #-}
-   {-# LINE 752 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 750 "./src-ag/DefaultRules.ag" #-}
    rule211 = \ ((!_childrenIinputs) :: [(Identifier, Attributes)]) ((!_childrenIoutputs) :: [(Identifier, Attributes)]) ((!_lhsIinh) :: Attributes) ((!_lhsInt) :: NontermIdent) ((!_lhsIsyn) :: Attributes) !_orderDeps ((!_rulesIlocals) :: Set Identifier) ((!_rulesIruleNames) :: Set Identifier) !con_ ->
-            {-# LINE 752 "./src-ag/DefaultRules.ag" #-}
+            {-# LINE 750 "./src-ag/DefaultRules.ag" #-}
             let chldOutMap = Map.fromList [ (k, Map.keysSet s) | (k,s) <- _childrenIoutputs ]
                 chldInMap  = Map.fromList [ (k, Map.keysSet s) | (k,s) <- _childrenIinputs ]
                 isInAttribute :: Identifier -> Identifier -> [Error]
@@ -3655,31 +3654,31 @@
                [ checkIn occA ++ checkOut occB
                | (Dependency occA occB) <- _orderDeps
                ]
-            {-# LINE 3659 "dist/build/DefaultRules.hs"#-}
+            {-# LINE 3658 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule212 #-}
-   {-# LINE 807 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 805 "./src-ag/DefaultRules.ag" #-}
    rule212 = \ ((!_lhsIaugmentsIn) :: Map ConstructorIdent (Map Identifier [Expression])) !con_ ->
-                                                  {-# LINE 807 "./src-ag/DefaultRules.ag" #-}
+                                                  {-# LINE 805 "./src-ag/DefaultRules.ag" #-}
                                                   Map.findWithDefault Map.empty con_ _lhsIaugmentsIn
-                                                  {-# LINE 3665 "dist/build/DefaultRules.hs"#-}
+                                                  {-# LINE 3664 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule213 #-}
-   {-# LINE 814 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 812 "./src-ag/DefaultRules.ag" #-}
    rule213 = \ ((!_lhsIaroundsIn) :: Map ConstructorIdent (Map Identifier [Expression])) !con_ ->
-                                                   {-# LINE 814 "./src-ag/DefaultRules.ag" #-}
+                                                   {-# LINE 812 "./src-ag/DefaultRules.ag" #-}
                                                    Map.findWithDefault Map.empty con_ _lhsIaroundsIn
-                                                   {-# LINE 3671 "dist/build/DefaultRules.hs"#-}
+                                                   {-# LINE 3670 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule214 #-}
-   {-# LINE 822 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 820 "./src-ag/DefaultRules.ag" #-}
    rule214 = \ ((!_lhsImergesIn) :: Map ConstructorIdent (Map Identifier (Identifier,[Identifier],Expression))) !con_ ->
-                                                  {-# LINE 822 "./src-ag/DefaultRules.ag" #-}
+                                                  {-# LINE 820 "./src-ag/DefaultRules.ag" #-}
                                                   Map.findWithDefault Map.empty con_ _lhsImergesIn
-                                                  {-# LINE 3677 "dist/build/DefaultRules.hs"#-}
+                                                  {-# LINE 3676 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule215 #-}
-   {-# LINE 823 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 821 "./src-ag/DefaultRules.ag" #-}
    rule215 = \ !_mergesIn ->
-                                                  {-# LINE 823 "./src-ag/DefaultRules.ag" #-}
+                                                  {-# LINE 821 "./src-ag/DefaultRules.ag" #-}
                                                   Set.fromList [ c | (_,cs,_) <- Map.elems _mergesIn    , c <- cs ]
-                                                  {-# LINE 3683 "dist/build/DefaultRules.hs"#-}
+                                                  {-# LINE 3682 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule217 #-}
    rule217 = \ ((!_rulesIuniq) :: Int) ->
      _rulesIuniq
@@ -4264,39 +4263,39 @@
           in __result_ )
      in C_Rule_s51 v44
    {-# NOINLINE[1] rule280 #-}
-   {-# LINE 587 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 585 "./src-ag/DefaultRules.ag" #-}
    rule280 = \ !pure_ ->
-                                {-# LINE 587 "./src-ag/DefaultRules.ag" #-}
+                                {-# LINE 585 "./src-ag/DefaultRules.ag" #-}
                                 pure_
-                                {-# LINE 4272 "dist/build/DefaultRules.hs"#-}
+                                {-# LINE 4271 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule281 #-}
-   {-# LINE 654 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 652 "./src-ag/DefaultRules.ag" #-}
    rule281 = \ !_output ->
-                                         {-# LINE 654 "./src-ag/DefaultRules.ag" #-}
+                                         {-# LINE 652 "./src-ag/DefaultRules.ag" #-}
                                          mkRuleAlias _output
-                                         {-# LINE 4278 "dist/build/DefaultRules.hs"#-}
+                                         {-# LINE 4277 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule282 #-}
-   {-# LINE 655 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 653 "./src-ag/DefaultRules.ag" #-}
    rule282 = \ ((!_lhsIoptions) :: Options) ((!_lhsIuniq) :: Int) !_output1 ->
-                                      {-# LINE 655 "./src-ag/DefaultRules.ag" #-}
+                                      {-# LINE 653 "./src-ag/DefaultRules.ag" #-}
                                       if needsMultiRules _lhsIoptions
                                       then multiRule _output1     _lhsIuniq
                                       else ([_output1    ], _lhsIuniq)
-                                      {-# LINE 4286 "dist/build/DefaultRules.hs"#-}
+                                      {-# LINE 4285 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule283 #-}
-   {-# LINE 658 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 656 "./src-ag/DefaultRules.ag" #-}
    rule283 = \ !_mbAlias !_outputs ->
-                          {-# LINE 658 "./src-ag/DefaultRules.ag" #-}
+                          {-# LINE 656 "./src-ag/DefaultRules.ag" #-}
                           maybe [] return _mbAlias     ++ _outputs
-                          {-# LINE 4292 "dist/build/DefaultRules.hs"#-}
+                          {-# LINE 4291 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule284 #-}
-   {-# LINE 743 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 741 "./src-ag/DefaultRules.ag" #-}
    rule284 = \ !mbName_ ->
-                                   {-# LINE 743 "./src-ag/DefaultRules.ag" #-}
+                                   {-# LINE 741 "./src-ag/DefaultRules.ag" #-}
                                    case mbName_ of
                                      Nothing -> Set.empty
                                      Just nm -> Set.singleton nm
-                                   {-# LINE 4300 "dist/build/DefaultRules.hs"#-}
+                                   {-# LINE 4299 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule285 #-}
    rule285 = \ ((!_patternIcontainsVars) :: Bool) ->
      _patternIcontainsVars
@@ -4458,11 +4457,11 @@
           in __result_ )
      in C_Rules_s42 v31
    {-# NOINLINE[1] rule293 #-}
-   {-# LINE 650 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 648 "./src-ag/DefaultRules.ag" #-}
    rule293 = \ ((!_hdIcontainsVars) :: Bool) ((!_hdIisPure) :: Bool) ((!_hdIoutputs) :: Rules) ((!_tlIoutput) :: Rules) ->
-                        {-# LINE 650 "./src-ag/DefaultRules.ag" #-}
+                        {-# LINE 648 "./src-ag/DefaultRules.ag" #-}
                         if _hdIcontainsVars && _hdIisPure then _hdIoutputs ++ _tlIoutput else _tlIoutput
-                        {-# LINE 4466 "dist/build/DefaultRules.hs"#-}
+                        {-# LINE 4465 "dist/build/DefaultRules.hs"#-}
    {-# NOINLINE[1] rule294 #-}
    rule294 = \ ((!_hdIdefinedAttrs) :: Set (Identifier,Identifier)) ((!_tlIdefinedAttrs) :: Set (Identifier,Identifier)) ->
      _hdIdefinedAttrs `Set.union` _tlIdefinedAttrs
@@ -4625,17 +4624,17 @@
           in __result_ )
      in C_TypeSig_s22 v11
    {-# INLINE rule317 #-}
-   {-# LINE 606 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 604 "./src-ag/DefaultRules.ag" #-}
    rule317 = \ ((!_lhsInt) :: NontermIdent) ((!_lhsIparams) :: [Identifier]) !tp_ ->
-              {-# LINE 606 "./src-ag/DefaultRules.ag" #-}
+              {-# LINE 604 "./src-ag/DefaultRules.ag" #-}
               elimSelfId _lhsInt _lhsIparams tp_
-              {-# LINE 4633 "dist/build/DefaultRules.hs"#-}
+              {-# LINE 4632 "dist/build/DefaultRules.hs"#-}
    {-# INLINE rule318 #-}
-   {-# LINE 647 "./src-ag/DefaultRules.ag" #-}
+   {-# LINE 645 "./src-ag/DefaultRules.ag" #-}
    rule318 = \ !_tp1 !name_ ->
-                 {-# LINE 647 "./src-ag/DefaultRules.ag" #-}
+                 {-# LINE 645 "./src-ag/DefaultRules.ag" #-}
                  TypeSig name_ _tp1
-                 {-# LINE 4639 "dist/build/DefaultRules.hs"#-}
+                 {-# LINE 4638 "dist/build/DefaultRules.hs"#-}
 
 -- TypeSigs ----------------------------------------------------
 -- wrapper
diff --git a/uuagc.cabal b/uuagc.cabal
--- a/uuagc.cabal
+++ b/uuagc.cabal
@@ -1,7 +1,7 @@
 cabal-version: >= 1.8
 build-type: Custom
 name: uuagc
-version: 0.9.50.1
+version: 0.9.50.2
 license: BSD3
 license-file: LICENSE
 maintainer: Jeroen Bransen <J.Bransen@uu.nl>
@@ -29,7 +29,7 @@
    build-depends: uuagc-cabal >= 1.0.2.0
    build-depends: base >= 4, base < 5
    -- Self dependency, depend on library below
-   build-depends: uuagc == 0.9.50.1
+   build-depends: uuagc == 0.9.50.2
    main-is: Main.hs
    hs-source-dirs: src-main
 
